text:
How to get started with the code for drawing Blender’s user interface?
I’m interested in working with the drawing code responsible for the user interface in the Dope Sheet & Graph Editors (not the Python code for menus/panels, but rather the actual timeline, keyframes, grid, etc.). How would I get started with this?
Thank you!

Blender is open source. Have you tried browsing its source tree https://developer.blender.org/diffusion/

I'm aware and I develop for Blender. I'm just unsure of where the code is for drawing the UI. Not sure why this was downvoted - not very nice for those looking to learn. All I need is someone to point me in the direction of the drawing code for the Dope Sheet & Graph Editors.

I didn't downvote, but these types of questions are generally better directed at developers, through dev channels. This site is mostly aimed at end users and using Blender, these types of questions about source code don't often get many answers here because developers don't come here often.

Thank you. I got much kinder responses at http://devtalk.blender.org

If you go to blender.org you can eventually navigate to Code Documentation where yo will find an overview of the file system layout.  The editors all live in /source/blender/editors/, described in the layout as

Graphical editor code, tools, UI ... (most of the interesting code is in there)

Most of what you are looking for lives in /source/blender/editors/animation/ and /source/blender/editors/curve/
You can look in the actual code, but I find the Github Mirror easier to navigate most of the time.
If you haven't already, I'd recommend setting up visual studio code with github addons and syncing a local copy of the repository, making some forms of search much easier.


text:
Getting the Property Subtype from an FCurve
Is there a way to get a property's subtype from an FCurve (e.g. DISTANCE, TEMPERATURE, ANGLE)? Thank you!

For anyone else looking for this answer, it is accessible like this:
def get_subtype(obj,fcurve):
    return obj.bl_rna.properties[fcurve.data_path].subtype

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Editing Grease Pencil Points in View Space
I'd like to get the coordinates of my selected Grease Pencil points and move them in relation to the 2D Camera View Plane coordinates (as you do when you use the View Transform Orientation).

For example, if the scene's render resolution is square and the camera view is 1080x1080, the top left corner of the Camera View Plane would be 0,0 and the bottom right corner would be 1080,1080, making this line's top point 494,118 and the bottom point 494,954

I found this post, Coordinates of corners of camera view border, which shows how to get the camera's view relative to the area. How could I (& should I) take a similar approach, which seems to be:
Get the camera frame in pixels

getting the View Frame's 4 points for the cameras frame
convert to world space
convert to pixel space with location_3d_to_region_2d

Get the Grease Pencil points in pixels:

convert to world space based on Grease Pencil object's matrix?
convert to pixel space with location_3d_to_region_2d?
move the points in pixels based on the Camera View coordinates?
convert back to the Grease Pencil's object space?

Any guidance on how to go about this would be most appreciated. Thank you!

Well, you already sketched to steps quite right. In the code below all the points of a Grease Pencil stroke are moved following this approach:

Convert the point to world space, by applying layer and object transforms (location, rotation, scale).
Convert the world coordinates to 2D space.
Move the point in relation to the 2D camera view. (In this example the points are moved to the right with an offset of 30% of the view frame width.)
Convert these 'moved' 2D coordinates back to 3D space.
And convert the 'moved' 3D coordinates to the stroke's local space, by applying the inverted layer and object transforms.

So, in short, a lot of converting back and forth to get what you want!
import bpy
import mathutils
from bpy_extras.view3d_utils import location_3d_to_region_2d, region_2d_to_location_3d

# Find first 3D view in active screen
# From: https://blender.stackexchange.com/questions/6377/coordinates-of-corners-of-camera-view-border
def view3d_find():
    for area in bpy.context.window.screen.areas:
        if area.type == 'VIEW_3D':
            v3d = area.spaces[0]
            rv3d = v3d.region_3d
            for region in area.regions:
                if region.type == 'WINDOW':
                    return region, rv3d
    return None, None

# Get 3D view region, for converting 3D coordinates to 2D
region, rv3d = view3d_find()

# Get camera view frame in 2D coordinates
# From: https://blender.stackexchange.com/questions/6377/coordinates-of-corners-of-camera-view-border
camera = bpy.context.scene.camera
view_frame = camera.data.view_frame(scene=bpy.context.scene)
view_frame = [camera.matrix_world @ v for v in view_frame]
view_frame_2d = [location_3d_to_region_2d(region, rv3d, v) for v in view_frame]

# Get x min and max of view frame
view_frame_min_x = view_frame_2d[2][0]
view_frame_max_x = view_frame_2d[0][0]

# For brevity, we assume the active object is a grease pencil object
obj = bpy.context.active_object

# Get active layer
layer = obj.data.layers.active

# For this example, get first stroke in layer (we assume there is one)
stroke = layer.active_frame.strokes[0]

# Move all points in 2D space
for point in stroke.points:
    # Get world position of point, by applying
    # layer transform and GP object transform.
    # Note: the order here matters.
    world_co = obj.matrix_world @ layer.matrix_layer @ point.co

    # Convert world coordinates to 2D space
    co_2d = location_3d_to_region_2d(region, rv3d, world_co)

    # As an example, move the point to the right
    # with an offset of 30% of the view frame width.
    delta_x = (view_frame_max_x - view_frame_min_x) * 0.30
    co_2d += mathutils.Vector((delta_x, 0))

    # Convert 2D coordinates back to 3D space,
    # using the original world location as depth location.
    # See: https://docs.blender.org/api/current/bpy_extras.view3d_utils.html#bpy_extras.view3d_utils.region_2d_to_location_3d
    co_3d = region_2d_to_location_3d(region, rv3d, co_2d, world_co)

    # Convert this world location to stroke local space, by applying
    # the inversed transforms of GP layer and object.
    # Note: the order here matters.
    local_co = layer.matrix_inverse_layer @ obj.matrix_world.inverted() @ co_3d

    # Assign to point
    point.co = local_co

This is SOOOOOO very helpful and brilliant. Thank you so much Sietse for taking the time!!!!!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Get the object of an FCurve
I am getting the Graph Editor's visible FCurves using the following code:
visible = context.visible_fcurves[:]
for fcurve in visible:
    #object code here

How do I get the object from this FCurve? In this example, Cube:

Thank you!

Marty has beat me to it, but the way I found is:
found = [o for o in D.objects if o.animation_data and o.animation_data.action is fcurve.id_data]

where fcurve is the iterator variable in your loop, and found is a list of all objects sharing the animation data using this fcurve. Assuming there's exactly one, you could instead do:
found = next(o for o in D.objects if o.animation_data and o.animation_data.action is fcurve.id_data)

And if the length of the oneliner is bothering you, walrus helps a bit:
found = next(o for o in D.objects if (d:=o.animation_data) and d.action is fcurve.id_data)

I like this, as I didn't think to use the id_data to avoid looking through fcurves, but I have seen cases where o has animation_data but for corner case reasons there is no action. (For those playing along at home, D is set in the Python console, but not scripts.  It's equal to bpy.data in my script above.

@MartyFouts then it will compare None and fcurve.id_data identities and omit the object from the results.

Doh.  I knew that.  (Apparently not ;)

The only way I know how to do this is to search objects to see if the fcurves are present:
for object in bpy.data.objects:
    if object.animation_data and object.animation_data.action and object.animation_data.action.fcurves:
        for fcurve in object.animation_data.action.fcurves:
            if fcurve in visible:
                print(f"{object.name}")

You can replace the for... with other ways of going through objects.  You might be able to use context.active_object or limit the search to only selected objects, et cetera.
The first clause of the if statement separates objects that have animation data from those that don't.
Even if an object has animation data the second clause is for obscure cases when the animation data doesn't have any actions.
The third clause in the if statement is probably overkill, but I can't find anything that guarantees that if an object has an action that action will have fcurves.

This will only work for animation data directly associated with objects; which appears to be what you want.


text:
Follow Path with Shrinkwrap Modifier
I'm trying to use a Follow Path Constraint on a Curve that is being Shrinkwrapped to a surface.
When the Curve's Shrinkwrap Modifier is active, the object with the Follow Path Constraint is still following the unmodified curve as can be seen in these screenshots (it doesn't move when the modifier is active):

How can I get the object to follow the path after the Shrinkwrap modification? Thank you!

You need to set the shrinkwrap modifier to act on the spline rather than the geometry:

Notice the tooltip.
Edit: I expected my mouse cursor to show up, but it didn't.  The "affect splines" button is the first button to the right of the Shrinkwrap modifier's name.

Thank you very much for the answer: it works! I don't entirely understand the Apply on Spline option. What geometry would the Shrinkwrap be acting on if it's a Curve?

If you give it bevel or extrusion, it has actual mesh.  If you don't apply on spline, the spline (for purposes of a few things, like follow path) won't be affected by the modifier, but that generated mesh will be.

Thank you very much, Nathan. :)


text:
White Diffuse Color shows as Gray in Diffuse Color Render Pass
In my current scene I have a material with a Diffuse BSDF node applied to all objects. The diffuse color is pure white. When I render the Diffuse Color pass or switch to Diffuse Color in the Viewport, the color is grey (see screenshot attached). Can anyone please tell me what is happening and how I can get the Diffuse Color to be pure white? I'm using Eevee.
Not that this should matter, but the Viewport Display of material is also white. So is the World Color and its Viewport Display Color.
Thank you!

The brightness of colors and how they appear in general is dependent on the Color Management settings. By default Blender is set to Filmic which has a higher dynamic range, but what you want to see is the sRGB color. Go to the Render Properties and set View Transform to Standard.

That was it! Thank you very much, Gordon!


text:
Setting the Default Value of a Float Property Dynamically
I am updating the active object's location.x with a FloatProperty with the following code.
How can I change the value of the FloatProperty slider to the active_object's current location.x when the active_object changes?
Thank you!
import bpy

class SomePanel( bpy.types.Panel ):
    bl_label = "Property panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    def draw(self, context):
        layout = self.layout
        scn = context.scene
        layout.prop( scn, 'someValue' )

def whenUpdate( self, context ):
    if context.active_object:
        context.active_object.location.x = self.someValue
    print( 'update', self.someValue )

def register():
    bpy.types.Scene.someValue = bpy.props.FloatProperty(
        name = "Float",
        description = "Enter a float", min = -100, max = 100,
        update = whenUpdate ) #Assign the update function here
    bpy.utils.register_class(SomePanel)

def unregister():
    bpy.utils.unregister_class(SomePanel)
    del bpy.types.Scene.someValue

if __name__ == "__main__":
    register()

Hello ! Just a thought, wouldn't it be easier to define a property with a getter that fetches the active object's x location value ?

Hello @Gorgious, thank you for the reply. It might be easier! Do you mean a PropertyGroup class? If so, can I access the scene's someValue variable and the active_object  from there?

If I understood the problem correctly, you can use Getter / Setter functions to achieve your goal.
import bpy

def get_value(self):
    return bpy.context.active_object.location.x

def set_value(self, value):
    bpy.context.active_object.location.x = value

if __name__ == "__main__":
    bpy.types.Scene.someValue = bpy.props.FloatProperty(get=get_value, set=set_value)

Of course you'll have to add safeguards so you don't try to run the functions if there is no active object.

This is perfect, thank you!!

I've found an answer via from Detective bpy on the Blender Community Discord. They provided a link to this post:
https://blender.stackexchange.com/a/239606
Which led me to this solution:
import bpy

def msgbus_callback(*arg):
    bpy.context.scene.someValue = bpy.context.selected_objects[0].location.x

def subscribe_to_obj():
    bpy.msgbus.subscribe_rna(
        key=(bpy.types.LayerObjects, 'active'),
        owner=bpy,
        args=('something, if you need',),
        notify=msgbus_callback
        )

class VIEW3D_PT_SomePanel( bpy.types.Panel ):
    bl_label = "Property panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    def draw(self, context):
        layout = self.layout
        scn = context.scene
        layout.prop( scn, 'someValue' )

def whenUpdate( self, context ):
    if context.active_object:
        context.active_object.location.x = self.someValue
    print( 'update', self.someValue )

def register():
    bpy.types.Scene.someValue = bpy.props.FloatProperty(
        name = "Float",
        description = "Enter a float", min = -100, max = 100,
        update = whenUpdate ) #Assign the update function here
    bpy.utils.register_class(VIEW3D_PT_SomePanel)
    subscribe_to_obj()

def unregister():
    bpy.utils.unregister_class(VIEW3D_PT_SomePanel)
    del bpy.types.Scene.someValue

if __name__ == "__main__":
    register()


text:
BoxCutter Automatically Switches to View Surface Mode
I'm learning to use BoxCutter and when I Left Mouse Button click and drag, the Surface Mode is automatically changing to View (see screencast). How can I get BoxCutter to stay in Object Mode?

Thank you.

This video was provided by Team Csharp, the makers of Boxcutter. https://youtu.be/MxchEkYi940
The reason it's switching is because the drawing of the box is starting in the View rather than on the Object itself.


text:
Multiple actions in one file - how do I switch between each action?
In my file I have a rigged character and a couple of different animations, i.e. actions. In the dope sheet/action editor I can select between these, and the yellow/white dots (I mean the dots that display where in the timeline a keyframe is for the given bone) get updated accordingly, so I'm sure the previous animation was saved with the .blend file.
However, when I scrub through the timeline, the character always performs the same, most recent action. So say the dope sheet is displaying the keyframes from a crouch animation, but when I move the cursor in the timeline to a specific point, the character in the 3D view will still perform the running animation!?
How can I go back to view and edit the actions I made before?

Actually I need to correct myself: The keyframes are displayed inside the action editor. When I change the mode to the actual dope sheet, it's always empty. Even though when scrubbing through the timeline, or pressing shift+space, the animation will play.

something must be playing in the NLA editor because you must have pushed down one of the action, so go in the NLA and deactivate the track?

I don't think that's it. I disabled everything from the NLA editor, made it completely empty. I managed to switch between the actions sometimes, but I can't figure out how to make it work reliably. I think it has something to do with having all the bones selected as well, as that sometimes seemed to make it work. Just one more of those confusing things about blender

maybe share your file (at least the animated armature): https://blend-exchange.giantcowfilms.com/


text:
No smoothing group information was found when importing obj file in UE4
When I try to import my obj file in Unreal I keep getting this error.
"No smoothing group information was found in this FBX scene. Please make sure to enable the 'Export Smoothing Groups' option in the FBX Exporter plug-in before exporting the file. Even for tools that don't support smoothing groups, the FBX Exporter will generate appropriate smoothing data at export-time so that correct vertex normals can be inferred while importing."
I never got this error when I used Blender 2.78b, so I make models in 2.8 and after that I import obj file to 2.78b and export as obj again with same settings with this Unreal doesnt show any error messages.
But I dont want to go 2.8 then 2.78b then Unreal.
Right now when I export a obj file I chose this boxes.
Selection Only : Depends
Animation : No
Apply Modifiers : Yes
Include Edges : Yes
Smooth Groups : Yes
Bitflag Smooth Groups : Yes
Write Normals : Yes
Include UVs: Yes
Write Materials : No
Triangulate Faces : No
Write Nurbs : No
Polygroups : No
Objects as OBJ objects : Yes
Objects as OBJ Groups : Depeds
Material Groups : No
Keep Vertec Order : No

You're mixing two things here .obj and .fbx files. Seems like Unreal doesn't like .obj files and wants .fbx instead? So I assume using .fbx as export format is what you need to do.

Unreal have no problem with .obj files when I export them with blender 2.78b but you right. I dont want to export .fbx files because they are almost x9 times bigger then .obj files. Maybe its time to switch to .fbx ,thanks.

Set Smoothing under the Geometry tab to Face in the FBX export settings when exporting.

I am trying to export them as .obj file because .fbx files generally bigger but if I will decide to switch .fbx I will definitely use this thanks.

confirming this resolved the error with Blender 2.82 and Unreal Engine / Unreal Editor 4.25 . Thank you!


text:
Why blender is not registering its website on brave rewards?
I was trying to send blender some fund but my brave browser said that blender website is not registered for brave rewards.

Wrong community.

Blender has its own platform for donations. You can donate to Blender development fund or make a one time donation using the listed options that include PayPal and even several cryptocurrencies.


text:
"extra shading pie menu items" option not showing in custom keymap
In Blender 2.80 in Properties > Keymap if you use the standard Blender preset you get Preferences windows with option to check "extra shading pie menu items" option under Tilde Action. This option extends the shading pie menu
But when you use a custom Keymap the preference window is unavailable.
Is there a way to turn this option on other way?
I tried using python line that I got from the Info window but I only get en error
>>> bpy.data.window_managers["WinMan"].(null) = True
  File "<blender_console>", line 1
    bpy.data.window_managers["WinMan"].(null) = True
                                       ^
SyntaxError: invalid syntax

The "extra shading pie menu items" is available if you manually change the keymap name from VIEW3D_MT_shading_pie to VIEW3D_MT_shading_ex_pi


text:
Bevel Shape not 45°
weird bevel shape coming from blender this morning.
Instead of the 45° bevel feature with a single edge I get a 10° bevel? I have been playing around with the shape 0 and 1. And it makes no difference?
Thoughts

How do I get back to normal bevels?

have you applied the scale of your object in Object mode?

Let me have a look

I have. How do I set the new scale as zero? I see Ctrl-A...

scale should be 1 not 0. In object mode default shortcut is CONTROL+A > SCALE

Like moonboots said, apply scale by Ctrl + A > Scale. Most probably that will solve it.

If the scale is not the issue, go into the settings of the bevel (the tab that appears in the bottom left of the viewport right after you do the bevel) and see if it's set to proportional (or "percentage"?).  If it is, set to offset or width.

Thank you @moonboots. Appreciate the help


text:
How can I imprint the 5 cubes on a curved surface
How can I imprint the 5 cubes on a curved surface? I'm looking for a 1mm imprint. to mark as windows.

Best method in your case would be:

Create planes and add an array modifier
Add shrinkwrap modifier to attach the planes to the surface with 1mm offset.
Add solidify modifier to add depth to the planes.

Potentially add bevel, smooth for nice effects and maybe boolean subtract.
Otherwise in the more general case for complex meshes, you could shrinkwrap but limit to specific vertex groups, or manually with "Snap to Faces" turned on.

How do I position the 5 windows on the surface?.. Equally

Position the windows equally on the surface before the shrinkwrap.


text:
Zigzag Bevel behaviour on a mirror
I have a mirrored model with transforms all applied, I get a really weird bevel. A zigzag..
Any thoughts.

when you say that it's mirrored, are you talking about the mirror option? I wonder if there's not a bug with this option...

can you share the blend file?

I found the answer the Norms where the different. Ctrl-N fixed it up.


text:
Boxcutter slice following the internal contour
I would like to know if there is a quick way to use boxcutter slice functionality to get a slice that follows the internal edges of an object. See below:
The below was created in Vanilla -

Boxcutter is a third-party addon, not part of Blender so questions about it are off-topic here. However Josh Gambrill has several YT videos using it which include the sort of effect you want so I suggest you look for his videos online.

Thanks, I'll have a dig. Apologies if these questions are not allowed.

Here is a solution without any add-ons if someone looks for it:

Select the ominous face(s) of the surface
Use "Inset Faces" on them
"Bevel" the new edge loop to 3 loops
Select the middle loop (by holding ALT) and move it on the appropriate axis or along normals. (You can Bevel them again if you want)

I appreciate the effort, I did something similar. Thank you.


text:
Interactive line drawing tool
I would like create an add-on that allows me to select a location, add a vertex, select a second location, add a vertex, etc. while adding edges between each. Basically making a line drawing system. Is it possible to use this tool to allow interactive creation of those vertices? If not, is there another way?

CTRL + RIGHT CLICK while a vertex is selected will create a new vertex at click position, connected to the prrevious vertex with an edge

and bang....learnt something valuable today!! ;) Thanks!

Just what I was looking for, blender is amazing.

This is already possible by Shift-A -> Add Single Vert -> then press E to extrude and you get a new vert to move and place.
Prerequisite: enable this build-in add-on:


text:
How to change the output resolution of a video without cropping it?
I would like to change the resolution of the output video file to 1/4 of it's original size in both the X and Y directions.
But changing the pixel size in the dimensions part of the output properties tab just crops the video. I have also tried transforming the video to be scaled to 1/4 the size, but then the output is just an empty square of the original size, with the video at 1/4 the size in the center.
I would have thought that combining the two effects would enable me to rescale the video, by cropping the canvas size down to the rescaled video size. But unfortunately, cropping the output size also crops the transformed video, so that the fraction of space taken up by it remains the same. So the result is that I end up with a small square in the center, that only features a very small section of the lower left part of the original video.
I have been trying to find a solution to this, but have so far been unable to find any. Is there some way to make the scaling transformation permanent, so independent of any future change in the output dimensions? Or is it possible to have a different output compared to input size, that scales the video to match the size, rather than crop it?
Thanks for any help!

Try the beta version of 2.92. Just a few days ago, all of the vse transform functions were updated.


text:
Is there a way to recover lighting conditions from a render?
I'm trying to replace an object in a rendered scene with a 2d image of an object of the same shape but different texture. I know all the rgb values of the existing image without the lighting effects in the image. Is there any way to create a mapping from that difference which I could then use on my cg image to give it the same lighting effects i.e. hue, saturation, shadows etc


text:
Basic Material Issue
I'm new to Blender. I tried following a few tutorials to apply, scale, project/wrap textures etc. My texture is looking correct in the material preview but not in the render mode. Are my nodes incorrect?

Hello Sara :). When texture isn't displayed on a model (there's only a solid color), it often due to a missing UV map. Have you UV unwrapped your model?

If you want info on UV mapping, check out this guide, It might seem a bit intimating because it is rather in-depth, but I've always recommended it, as it is very thorough. - https://artisticrender.com/the-definitive-tutorial-to-uv-mapping-in-blender/


text:
Motion Blur not Rendering in Eevee
I've just finished a big animation and as I'm about to render the motion blur isn't working! I have it turned on, and I messed around with all the settings. What's weird is in older renders of the animation the motion blur DID render, but now it isn't. Does it have to do with the lightning potentially?


text:
Transparent Background in Lower Third for Export to Different Program
I'm trying to do a lower third in Blender VSE for my husband.  I use blender, but he uses Adobe Premiere.  We're having difficulty exporting and making the background (everything but the lower third) transparent so that we can see the video in the background.  I was able to figure everything else out about animating the lower third by myself via tutorials.  Could someone please give me some direction?

If your question has been answered, please mark the answer accordingly.

Try setting your output to ffmpeg + Quicktime + PNG:

In the Sequencer View menu select Sequence Render Animation:


text:
Animation Nodes: How to create splines between a particle system and an object based on distance?
I would first like to mention that I am a beginner to Blender and Animation Nodes. I am trying to create an animation where an icosphere orbits above a plane that emits particles, and if the particles are close enough to the sphere as it passes, will create a spline between the icosphere and the particle. So far in my animation nodes, I am able to find the distances between the icosphere and the particles, but I am unsure how to implement a sort of if statement (like the find close points node) to select only the particles that are a certain distance away, and then use the create spline to create a spline between the icosphere and these particles. Any help would be greatly appreciated.

It is very easy to do with Animation Nodes by using the KDTree node.
Method:

First construct the KDTree from the position of the particles. Then, use the Find Points in a Radius node to find the points/particles (shown by red color) within a radius from the Vector which is the position of the object (in this case is a Sphere).

Now, to make splines from the Sphere for each red-points/particles, we have to use the Loop node, with which we create a vector list from the sphere's position and each red-points position. Then use the Spline From Points node to create the splines from the previously created vector list, and the Curve Object Output node generates the Curve Object.

Blend File:

Thank you so much for the response, this is exactly what I wanted, I only have one question. I am trying to replicate what you did, and I can not seem to find the splines list node you have at the end of the subprogram that inputs a spline and outputs a spline list. I thought it might be a create spline list, but I can't get it to look like yours. Thanks again!

I did not use any Splines List node. There are two nodes for the spline list, one is Create Spline List node and the other is the Combine Spline Lists node.


text:
why are my hair strands coming from the bottom of my donut and not the top
why are these hair strands coming from the bottom and not at the top of the icing

To fix this problem, click on the icing and go to edit mode. There, select whichever parts you want the hair/particles to be on. Go to particle settings and click assign. I would reccomend selecting the whole upperside of the icing for the particles to be there but that is your choice.


text:
Instances on Specific Points
Currently in Geometry Nodes, the Instance on Points mode maps instances to points uniformly throughout an object (by vertices or samples). Is it possible to specify which points/vertices to use for Instance on Points? For example, if a curve has 5 vertices, could I assign an instance to the 1st, 3rd, and 5th vertices respectively?

Thank you!

Just connect index node to modulo 2 and put it in selection.

Hi @Chris, thank you for the reply. Could you please explain modulo 2? I see the Modulo enum in the Math node but I'm not sure how to use this to control which vertices receive an instance.

Perhaps there's useful information in https://blender.stackexchange.com/questions/214160/how-to-use-vertex-group-to-instance-an-object-in-geometry-node

i mean like this: index increases from 0 to number of points. Modulo 2 makes out of that a list of 0,1,0,1,0 ...

result with selection:

result without selection:

to get the 3 and 7th you do this for selection:

Note: this is an index compare. So 3 and 7 are in reality 4 and 8 !

Thank you so much for the explanation, scene file, and screenshots. It's very helpful. I was hoping to be more specific about which vertices. I used 1, 3, and 5 as an example, but I'd also like to just be able to target more arbitrary indices such as 3 and 7 (so something not requiring math). Do you have any advice for that?

you can compare the index with whatever values you like. So you could compare with 3 and 7 and maximum that result and put it in the selection. If my answer helped you, please check the checkmark left to my answer. thanks.


text:
Manipulating Mesh Vertices in Geometry Nodes
Is there a way to control the rotation of mesh vertices in Geometry Nodes? For example, could I rotate a mesh's vertices 45 degrees around the Bounding Box Center as I would in Edit Mode if I were to do it manually? Thank you!

Yes, you can, using Vector Rotate node to rotate, and Attribute Statistic to calculate the bounding box center (unless you mean the origin, then simply use the default 0;0;0 values for rotation center):

That works! Thank you very much, Markus!


text:
Vertex Motion Trail Add-On?
Does an Add-On exist for Blender that allows the use to create a motion trail for a vertex (particularly after it has been deformed)? Here is such a script in Maya:

I see that it is possible in Blender, so I am hoping such an Add-On exists.
Thank you!

Related (and includes add-on that takes a trail of particles and converts into a curve) : https://blender.stackexchange.com/a/94976/29586

https://blender.stackexchange.com/questions/7744/particle-trails-in-cycles https://blender.stackexchange.com/questions/117090/particles-with-motion-trails https://blender.stackexchange.com/questions/52830/is-it-possible-to-create-a-path-from-an-existing-object-animation

This question was answered by Jan-Willem van Dronkelaar, @jwvdronkelaar on blender.chat:
http://drive.google.com/file/d/1PVS2eSjI1oyF7_JsBYSs8g-nevj29nz-/view?usp=sharing
The solution:

Select Armature, click Rest Position
Go into Edit Mode for mesh of character
Highlight the vertex
Press Shift+S > Cursor to Selected
Switch to Object Mode
Shift+A to add an Empty, which should be at the 3D Cursor & Vertex position
With the Empty active, Shift select the character mesh
Switch back to Edit Mode
Ctrl/Cmd+P to Make Vertex Parent
Select Armature, click Pose Position and the Empty should follow the Vertex
To get the motion trail, go into the Object Properties of the Empty, go to Motion Paths, click Calculate
After edits, recalculate the Motion Path by clicking Update Paths.

(With Blender 3.0, if you are in the Armature's Pose Mode, when you right click there's an option to refresh motion paths.)
Thanks again to Jan-Willem for this solution!


text:
Subscribing to Keyframe Selections
I'm using the following to execute a function when the Scene's Active Object has changed. Is it possible to execute a function when the Scene's selected keyframes change (across any objects)? Thank you!
import bpy

def msgbus_callback(*arg):
    # in console will be print selected_objects
    print(bpy.context.selected_objects)
    # you can do something

def subscribe_to_obj():

    bpy.msgbus.subscribe_rna(
        key=(bpy.types.LayerObjects, 'active'),
        owner=bpy,
        args=('something, if you need',),
        notify=msgbus_callback
        )

if __name__ == "__main__":
    subscribe_to_obj()


text:
Parenting to a Curve with Python leads to unexplained results
I'm trying to set a Curve as a parent to objects using Python. My Curve's position is 0,0,0 at the World Origin. When I run the script below, the cubes get parented to the Curve and jump to a different location, yet their location values stay the same. Can someone please show me how to parent these objects to the Curve while keeping their world transforms?
Note: I noticed a more correct location when setting the Curve's dimensions to 3D.
Thank you!

import bpy
from mathutils import Vector

cube1 = bpy.data.objects["Cube"]
cube2 = bpy.data.objects["Cube.001"]
curve = bpy.data.objects["Circle.001"]
objects = [cube1,cube2]
for o in objects:
    o.parent = curve
    o.matrix_parent_inverse = curve.matrix_world.inverted()

it works if your circle is a mesh but not if it is a curve. why don't you convert it to mesh? or maybe report it as a bug

The curve data's use_path needs to be disabled for the parenting to work with the curve's origin.
cube = bpy.data.objects["Cube"]
curve = bpy.data.objects["Circle"]
curve.data.use_path = False
cube.parent = curve
cube.matrix_parent_inverse = curve.matrix_world.inverted()

i see your ticket is resolved https://developer.blender.org/T100661 but how did you find out?

@HarryMcKenzie I started ticking checkboxes in the Curve's properties and saw the relationship lines change with Path Animation. Thank you for the concern and the replies - very much appreciated!


text:
View3DOverlay.show_overlays exists in context only?
If I use the following code in a workspace with a View 3D, I can see its property show_overlays in Python:
area = next(area for area in bpy.context.screen.areas if area.type == 'VIEW_3D')
space = next(space for space in area.spaces if space.type == 'VIEW_3D')
print(space.overlay.show_overlays)

The overlay is of class type View3DOverlay. In the documentation, it says show_overlay is one of its many properties, however this code throws an AttributeError:
print(bpy.types.View3DOverlay.show_overlays)

show_overlays and all of the other properties also do not show when using autocomplete in the Python console. Do these properties only exist in the Context? I'm very confused.
Thank you!

bpy.types.View3DOverlay is a class that has the member variable show_overlays. you cannot access it directly through the class. space.overlay on the other hand contains an instance of the class bpy.types.View3DOverlay. https://www.w3schools.com/python/python_classes.asp

Thank you @HarryMcKenzie!


text:
Assign nodes to a specific area of the rendered image (compositor)
i am doing a scene at night with a selfmade world with stars. In my final render i want to now add a glare node in the compositor. My problem is that i have other lightemitting sources which are also affected by the glare node. Is there a way to assign this glarenode only to the top part of the rendered image (which is where you would see the nightsky)?

yes, you can e.g. with this node setup:

as you can see, on the top is with glare, the bottom half without.


text:
I made an animation, and I tried to export it as an FBX. Microsoft 3D Viewer can't open the file, and there is no animation data either
I tried to create a walking animation for a game I'm making in Unity. I made it, and exported it as an FBX. When I try to open the .fbx file in 3D Viewer, it shows me an error saying "Couldn't load 3D model. Try again later". Then I tried importing it to Unity, thinking it was a problem with the program. Couldn't see any animation.   Blender save: https://drive.google.com/file/d/1Sfl1NfiHlZ2pnowmk48QCz0FqjfKQKj3/view?usp=sharing

I got it, I had to click the Push Animation button in the dope sheet tab.

Hi, thanks for the post. This site is not a regular forum, answers should be substantial and thoroughly explain the solution and required workflow. One liners and short tips rarely make for a good answer. If you can [edit] your post and provide some more details about the procedure and why it works feel free to restore it, otherwise it may be deleted or converted into a comment. Perhaps add a few images illustrating the workflow and final results. See How do I write a good answer?


text:
Geometry Nodes: How to distribute points with a consistent distance to each other but for only one direction?
Lets say i have a graph and i want to distribute points on that graph. But i want them to have a equal distance to each other based on the X vector. Does anyone know how to achieve this?
My Node tree:

Some variation on this.
In the case of an XY graph:

Capture the positions of the input graph (You could resample it to greater density, if you needed to, for a closer linear interpolation, later)
Scale the graph to 0 in Y
Evenly resample the curve, while a straight line, to your desired resolution.
Offset, (project,) the newly sampled points to an interpolation of the original curve, in Y only.

Which takes you from here, evenly distributed along the curve's length:

to here, evenly distributed in X:

That would be the better solution, because no duplicate points are being created. Thank you!

You can resample a lot and only use some of the new points by limiting the selection using a modulo on the relevant axis.

That did it! Thank you!

Ah, i found an issue with this. Because of the resample by a lot, there are duplicate points that are being created and multiple instancens on one location.


text:
Rendered File Cannot be Opened

I tried to render this project of mine, but the output file is just a blank one.

Did you render a single image or an animation? Because you chose an MP4 as output format.

I rendered it as an animation but the output file cannot even be opened.

Does your file have an *.mp4 extension that's not visible or is there simply no extension? Windows doesn't know automatically how to open files without extension - and honestly this paper sheet symbol just looks like what Windows shows when it doesn't know what kind of file it is.


text:
How to automatically select the current ViewLayer in Compositing
Is there a way to automatically select the active ViewLayer in the "Render Layers" node?

Thank you.


text:
The strangest render bug
This is happening with every project:
The render is randomly bugging on certain frames.
It seems to only happen to objects with complex geometry.
Any hints on what could be causing the issue? Does it have anything to do with "Persistent Data" being turned on?

Without more details, I can't tell what you mean by "bugging". All three images look like deliberate renders to me. What are you expecting, why are you expecting it, and what's not meeting your expectations?

have you turned on Depth of Field or Motion Blur? Maybe it comes from one of those?


text:
How to prevent recursion with Property Get/Set?
I have a get and set method for my properties. As an example, I'm getting the x dimension of a vertex selection. The get is simple enough. For the set, how can I get the delta or change in the Property value?
As in, if I have an object that is 6m in X, then the value being passed to my in my set function would be 6m. How can I then run my code to find the current size so that I can multiply the x coordinates by the change in value?
Here's some code for demonstration purposes:
def get_dim_x(self):
    obj = bpy.context.object
    v_x = [v.co for v in obj.data.vertices]
    dimension_x = max(v_x)-min(v_x)
    return dimension_x

def set_dim_x(self,value):
    # How do I get the delta/change in value without recursion?
    dim_x = get_dim_x(self)

    for v in obj.data.vertices:
        if dim_x  != 0:
            v.co.x *= value/dim_x

class EXAMPLE_PG_props(PropertyGroup):
    dimension_x: FloatProperty(name = "Dimension X",
                            default = 0.0,
                            step = 100,
                            get = get_dim_x,
                            set = set_dim_x
    )

Thanks!

Maybe a dumb question, but why don't you use obj.dimensions directly ?

@Gorgious, thanks for the reply. This is just an example to demonstrate how I might need to manipulate the value based on the current delta. It has come up in other situations. I found the post below but I'm not sure how I'd get the value in my case without using self["dimension_x"], which was ill-advised. https://blender.stackexchange.com/questions/49264/how-to-use-set-get-property-callbacks-correctly

AFAIK this is the only way to avoid recursion and it is not likely to change any time soon

may i ask why you are calling get_dim_x in set_dim_x instead of just using a variable? (as it is "normally" done in programming languages)

@Chris, what do you mean? Can you provide a code example please?

yes i will, if you are willing to provide a correct example which is runnable and without errors at all. Your provided code has at least 2 errors...obj is not defined and you are mixing vector/list properties with floatProperty.


text:
plugins or addons that add more nodes?
Are there any plug-ins or addons that add more nodes for use with Blender materials?
nodes like warp, wood, vector drawing, etc ???
thanks

https://blendermarket.com/categories/materials-shaders-textures

Thank you for your help
but I don't want materials
I want nodes to build materials, example
warp, wood, vector drawing, etc ???
exist ?
thanks

in this link video at 14:54 minutes: https://www.youtube.com/watch?v=xUpzBP0rMM0&t=816s
the guy uses node: Space warp 2
Where can I find this node and others with different functions? even if it's paid?
thanks

That's a node group. It simply contains an assortment of the usual nodes. People who create complex materials, can group parts of them. You would find such groups in Duartes linked blender market page.

I get the general impression that blender addons must be python-scripts only, whereas material/shading nodes must be programming in c, and I don't see any way to load extra c code into blender as an extension/plugin/addon; (sure its technically possible to have python load a c library and proxy it into blender, but the blender api won't allow python to register that as a new node type)

I would suggest looking up Open Shading Language (OSL). There are a number of repos using it available on Github.
To use it, you'll need to be using Cycles (Eevee, in the interest of being fast, does not support OSL at this time). Additionally, you'll need to be rendering on your CPU, not your GPU; while it's possible in theory, no one has implemented OSL rendering on the GPU yet and it's no small undertaking.
After you have that set up on your Render context, you'll want to select the checkbox for "Open Shading Language". This prepares Blender to run its internal OSL interpreter.
After that, in your shader, you'll have a Script node available. Add one. It seems simple at first; you just have a box for the OSL file and a toggle for a file-internal vs. file-external location; assuming you've got an OSL, click external, and open it up in the box. Once your OSL is open, the script node will have a lot more character, along with (presumably) some new inputs and outputs. Hook them up, play with your new node!
I hope that helps.


text:
Geforce RTX in the viewport
Is there any prediction when blender will have in the viewport all the features of the Geforce RTX graphics card?
mainly the GI?
thanks

Blender likely won't implement feature that is only available to a small subset of the supported hardware. It would also make the appearance inconsistent because the render result would depend on the features the GPU supports. I doubt that the RTX GI could be easily integrated with the way Eevee currently works. That being said, Blender is open source so somebody with the required experience might implement it anyway.

That's a question for a forum and not that well suited for stackexchange, I think. But I'll give you my guess: Eevee (i.e. the viewport) will not support RTX in the near future (it's using OpenGL and afaik there is currently no way to use RTX in there, but I might be completely off track) but Cycles is right now getting support directly from Nvidia to speed up rendering with RTX, see https://code.blender.org/2019/07/accelerating-cycles-using-nvidia-rtx/


text:
remaining vertices on Blender 2.81
in Blender 2.81
how can I be sure that there are no vertices, edges and faces left in my 3D model?
if it is found that there are leftovers which is the fastest and easiest way to delete them?
thanks

Hello and welcome :). Do you mean unconnected (free floating) vertices?

no
I mean vestices, edges and faces that can be created by mistake in modeling

I think you might need to clarify what you mean, since if you removed all the edges, faces and vertices, you wouldn't have a model anymore.

You can select inverse of objects, select loose, non-manifold, or interior faces for example, but I don't really understand the goal of your question. It might help to add some more info to help clarify what you mean by leftovers.

I'm talking about hidden vertices, edges and faces that damage the mapping and texturing

use "merge by distance" to clear double vertices and "degenerate dissolve" for zero area faces


text:
Render to print : 300DPI render
How can I set the DPI of an image made with EEVEE?
I want a 300DPI render for printing
thanks

Hello :). You probably know how DPI works. Simply take your print dimensions in inches and multiply it by 300. Voilà! - there's your render dimensions in pixels.

Quite interesting :) Do you want to know how many pixel you need for image printed at 300 dpi ... or how to assign a render (image) info about 300dpi resolution to be recognised by printer? In the first case Jachym's link is right in second case it is not possible in blender, it is a part of metadata that is not possible at the moment natively (from what I know).

read the second post: https://forums.cgsociety.org/t/high-resolution-300dpi-image-from-blender/1419912
is this right ?

Yes it is :) Just be aware DPI (dot per inch) as named are inches ... so if you want px for cm dimension you have to divide cm value by 2.54 like for A4 paper (21x29.7 cm) the math is for X 21/2.54*300 https://imgur.com/a/cmcmZTY

to facilitate the calculation in the blender: https://github.com/zebus3d/Render_to_Print .to facilitate the calculation in the blender:
72dpi in photoshop keeps showing
but I believe that the procedure described in the link I gave solves this. right ?

Yes ... "Render to Print" addon does the same math as in my screens ... 72 to 300 you have to change in some image editor just disable "Resample" and write 300 dpi. This site is meant to be knowledge base ... so would be helpful if you can create an answer in "Output for Print". Some short description with the screen of addon ... to help others. Thanks


text:
Heavy scene on EEVEE
I have a very heavy scene for EEVEE
can deleting unused materials make the scene lighter?
is it necessary to delete from: blender file or deleting in shader editor already gives result?
is there any feature to automatically delete all materials that are not associated with a mesh?
is there anything else I can do to make the scene light for use in EEVEE?
thanks

If you want to remove all unused materials that aren't on any objects, you can do so by following the image below. Just under File -> Clean Up -> Unused Data-Blocks.

You can also manually delete any materials you don't need by going into the object viewer window, and changing it to file view mode. Go down to materials, select the ones you don't need and delete.


text:
curvature node on eevee without AO
is there a way to simulate a curvature node in eevee without using the AO node?
to create a real node that places textures made with procedural maps on the corners and folds of a model?
thanks

it doesn't seem possible to do it in Eevee   :((

what do you mean with curvature node? RGB curves?

cavity node
that positions the texture only in the model's recesses


text:
weld surface to the other, without seams appearing?
how are you guys
finishing the video tutorial below:
How can I weld one surface to the other, without seams appearing, after aligning them?
https://www.youtube.com/watch?v=luFz5gzvM9s
thanks

is it not explained in the video? Snaping with Shrinkwrap assigned to a vertex group?

Thank you for your help

maybe tell if you failed and why, I've tested the same method and I'm not sure it always works


text:
New blender 3.0 and EEVEE?
what are the improvements for EEVEE in the new Blender 3.0?
is there any evolution in shader nodes?
like for example : node bevel , pointness and AO , etc?
thanks

You can find highlights of this information in the Release Notes.
Very little has changed in EEVEE, according to the notes:

Attribute Node

Custom mesh attributes (generated for example by Geometry Nodes) are now accessible via the Attribute node.

Wavelength Node

Support for wavelength node has been added to EEVEE, earlier it was Cycles only. It is now similar to Blackbody node, which uses a sampled color map internally.

Performance

Performance when editing huge mesh is improved. Changes in many areas are made resulting in an improvement of 2-3 times depending on the executed operation.

You can find a detailed list of the performance changes here


text:
Sticking objects with particles
How can I stick objects with shapes of my choice (on a model designed by me), on the parts with angles of my choice, very open and very closed through particles?
In short : making dirt on the mesh at its closed and open angle corners with particles making a gradient to the dirt free parts to use with EEVEE ?]

thank you so much

You could use the Vertex Paint > Dirty Vertex Colors tool in order to paint where you have concave/convex surfaces, then to convert the vertex paint to vertex group, use an addon, see here https://blog.michelanders.nl/2015/02/transfer-vertex-weights-to-vertex_28.html ... or here: https://blender.stackexchange.com/questions/15172/turn-weight-paintvertex-groups-into-vertex-paint


text:
Why does this bake produce different results than the unbaked model?
I am trying to bake a procedural map (diffuse only) and the result is not the same as generated by the procedural map. the procedural map is the first image below. the second image is the bake of this procedural map.
is there any specific setting to make this bake look like this procedural map? like ?
I want to bake only the diffuse channel.

thanks

Hello and welcome. Please don't post the same question more than once. If your previous question was put on hold, address raised the issues by editing it so it can be reopened rather than post a new one, otherwise see What should I do if no one answers my question?

after editing the locked question what do i do to unlock ? thanks

Editing is enough, it will automatically put it up on queue for review, so it can be reopened, or we can recommend further edits if needed. You can also tag it for reopening or flag for moderator if need be


text:
Could I make keep the animation position as the new position for an object?
I'm trying to simulate a cloth patch which is a rectangle to "stick" to something irregular like a forehead, so I thought of animating it by using a force field animation and it pushes it against the object. But obviously when I reset the animation it goes back to its 'stiff' regular shape. Is there a way I could keep the animation frame as my default instead of sculpting or something?
I also want a way to make the cloth more taut2.


text:
Best eGPU to use with MacbookPro 15" 2018
I'm using Blender 2.9 on my Macbook Pro, but it renders very slowly in Cycles on CPU. I've tried using ProRender but it makes the interface very laggy and it doesn't render any faster (at least nothing noticeable).
When rendering I know to set all the settings properly for faster render (samples, tile size etc.), but I would like to render my art and animations on proper GPU.
These are my computer details.

What would be a proper eGPU to use with my computer? I realize this could be more opinion based question, but there are so many options out there that I am lost, also it gets expensive buying wrong gear.

Hadn't a chance to test epgu's myself... but there are several bottlenecks, that's for sure. In order to get the most out of your card(s) I personally would recommend against egpu's and put them into a linux/windows box until metal api is supported.

Also, if you have some time I'd recommend try a linux distro on your macbook to see whether that will speed up things before throwing it into the trash can.

How to take a ScreenShot


text:
Strange artifact on baked normal
I am trying to bake a normal map from a hi poly to a low poly model. Everything seems right but there are two strange artifacts that I have no idea where they come from.
One of them is right below the face, the otherone is at the middle right of the map.
On close inspection, both artifacts look kind of similar since you can see a hand.
Any idea what is causing this?
Thanks!

it's probably baking invert normals, try to fix it with a higher Ray Distance or with the Extrusion value, or please share your file: https://blend-exchange.giantcowfilms.com/

Thanks! I'll try that.


text:
Freestyle line color from underlying material not working as expected
I'm trying to color freestyle lines using the underlying material. It looks like it should be able to pick up the RGBAa diffuse and specular channels, and the documentation agrees. But I can't make it work, it seems to only pick up the workbench-related "viewport color".
Is this supposed to work on 2.90?
https://docs.blender.org/manual/en/latest/render/freestyle/parameter_editor/line_style/modifiers/color/material.html

The material object has a property diffuse_color which is the viewport color. The color you want to link is the Base Color of the Principled BSDF node inside the node tree of that material. Sadly I don't know of a way to access it from the modifier, but you could use a script like this to automatically update the diffusion colors of all objects based on that node:
import bpy

for material in bpy.data.materials:
    if material.node_tree is None:
        continue
    principled = material.node_tree.nodes.get('Principled BSDF')
    if principled:
        material.diffuse_color = principled.inputs['Base Color'].default_value

It will consider the value inserted manually to the Base Color field, not one connected from some texture etc. And it makes sense to replace diffuse_color to line_color both in the code above and in the freestyle color modifier.


text:
Missing Texture
I attached an image texture to the head of my model and it shows up in render and when another object is selected in texture paint, but when I select it in texture paint it's purple again. I've tried finding missing links and nothing changes I'm not sure what is wrong I edit the image and the edits show up in render too so I'm not sure why my model is disconnected from it.

(PS: I like your phantump)

Thanks, I'm giving him a pumpkin head for Halloween lol.

Hello :). Please mark the answer as Accepted ✓ if it solved your problem :).

In order to be able to view your image texture in texture paint mode, you need to do a few things first.  Just follow my instructions, and hopefully it works. first, make a new image in the image editor section.
set your image settings, then create your image

once you have done this, make sure you have the desired object selected, and go over to the textures tab:

once in the textures tab, click on "New texture"  Then scroll down and open the image that you want to paint onto the mesh:

next, go into the tools tab

once in the tools tab, change the mode from "material" to "single image"

next, click the little drop down tab underneath the mode settings, and select the image you had previously made (see first 2 images) in this case, mine is named: "new image"

once that is done, your image should show up on your mesh when you paint over it.  You can change the texture paint settings as desired in the tabs below.

PS: If it is still not showing up after you've done all those steps, try going into the materials shader editor, press "add" search for "image texture"  and then hit the little texture tab to the left of the words "new" and "open"  and then select your previously made image, and lastly, attach the node to the "base color" in your "principled BSDF" node.
PPS: if by chance your textures show up in weird places on your mesh when you paint, try selecting the object, go into edit mode, and press "Shift+N", to recalculate the normals.
And that should be it, if you need further assistance, feel free to ask.  Hope I've been helpful! :)

Ah i see I accidentally detached the texture slot thanks a ton!

@Nicolas Alexander Lomas   no problem! happy to help :)  (btw, can you mark my answer as accepted? just click the check mark)


text:
I can't turn hair mask (aplha) on my model invisible
I'm a total noob with the shaders for starters, and i'm unable to grasp how to make alpha (black part) invisible.

I downloaded this model to play around and found myself unable to make his hair look normal. I looked around for answers but the common solution to this problem (shader script below) doesn't seem to work for me, at all.

I'm currently stuck and don't know what to do about it at all.
All help greatly welcomed.

It doesn't look like your image has transparency (alpha layer), just a black background. You could simply use it as a mask in the Alpha input of the Principled BSDF and the color of the beard will be determined by the Base Color of the Principled BSDF. In Eevee don't forget to choose Material > Settings > Blend Mode > Alpha Blend if you want transparency.

You could also choose this mix (mix a Transparent with a Principled BSDF in a Mix Shader with the Image Texture as mask), which should give the same result as above:

hello. Your answer was right, and not only that but now I know how to make potential hair in the future, and i'm grateful for your help. As an aditional question, do you think this type of hair will look like that in game engine for example UE4 ? Anyway thanks.

edit: oh yes of course you'll have the same result in the game engine, I don't know how you must prepare your material though


text:
Subtract tool in Weight Paint doesnt work on some specific points
When I try to subtract these particual vertexs it doesn't work . It happens for all other arms as well.

Hello please share your file: https://blend-exchange.giantcowfilms.com/

You selected the face mask for weight painting. In this mode you can only tweak faces which have been previously selected in edit-mode.
Click on this icon :


text:
Blender GLTF export does not include shader
I have a 3D model that looks like this:

It basically has two mashes, the pink one only has a base color value but the bottom one has some shader information:

When I try to export it to a GLTF file, the shader of the bottom one does not export for some reason and the model looks like this:

Can anyone help enlighten me on why this is happening?
Blend file:
https://drive.google.com/file/d/1IgwZo3mw3mxJ_RXkLnv6UcQQshZIV0mB/view?usp=sharing

This is the Blender manual section on the GlTF exporter. The Exported Materials section on that page goes into some detail on what is allowed.

That's normal, procedural shaders can't really be exported.
What you should do is either bake your procedural texture into an image texture, or paint an image texture.

I baked it to an image texture and it worked. However, there is a thin black line in the middle of the donut. I made a online demo https://corek.herokuapp.com/ . In this example model is scaled by 5 so the line looks bigger than it should be. Can you tell me why might this be happening

This can be multiple reasons, but usually because either you have UV islands too close to each other, or your baking margins are too big (causing other islands to bleed on each other) or too thin (causing the inside of islands to have unbaked parts), sometimes even both.
Since you are using a real time engine to preview, then the issue can be emphasized by it since it often use mipmapping, which reduces down the resulution and might make this kind of issue extremely apparent. Learn more about it here


text:
Meshes won't respond to ANY Transformation
I have reopened a blender file (Blender 2.93) that I worked on 2 months ago, and for some reason none of my meshes are responding to transformations (Scaling, moving or rotating) the axis seem to rotate but the meshes remain unaffected.

I have added an emission cube and tried rotating and scaling it and only the axis move (almost like they were emptys) I have attached some photos. I have set my options to apply transforms to affect origins and location, so I made sure I hadn't "Move Object Centers Only", but it seems to be alright?

I can't move any of my meshes or objects or lights, only the Axis, and I'm unsure how this happened? Disclaimer, I have just recently began with blender.

I would uncheck all the boxes in the Affect Only panel and see if that's good. Unless you're doing something specific and you know what you are doing I wouldn't advise checking any of these boxes.

I think all your items are locked in the Outliner-panel. Click on the Syphon-icon to view extra options for your items, check the arrow-icon, you can click on the arrow next to your item to (un)lock it.


text:
Geometry Nodes: confusion creating selection for a Delete Geometry node
I'm confused trying to complete an "object creation effect" using geometry nodes. The basics of the effect use two emptys, named EffectAnchor and EffectStart, and the object that is supposed to materialize; I'll call that object "target" here.
First a "Point Distribute" node is used to cover target with obscuring spheres.
Then I make a direction vector by subtracting EffectAnchor from EffectStart, as well as generate direction vectors for each of the obscuring spheres. I essentially set up a relationship where I project each obscuring sphere's position onto the EffectStart-EffectAnchor vector and use that to control an effect scattering these obscuring spheres into space along their normal, with some noise added.

Using "Attribute Color Ramp" and "Attribute Vector Multiply" I create some custom named attributes, one of which is named "displacement" and is used to scatter the obscuring spheres. I would like to use a "Delete Geometry" node on the target with the selection being all faces with their obscuring spheres having a "displacement" greater than zero. I've been trying to figure this out, but am coming up blank. Below is the Geometry Nodes graph:

I ended up replacing the above circled nodes with a "Realize Instance" -> "Geometry Proximity" -> "Vector Math, Greater Than" relationship chain. As shown here:


text:
Blender Cell fracture wireframe is creating separate sections rather than one form
I am fairly new to blender.
I'm trying to create a 3D voronoi structure based on a cell fracture.
My process is:

create the mesh exterior form
apply cell fracture
remove the original mesh (hide)
select all the fractured cells
join the fractures with CTRL + J
apply wireframe modifier (even deselected)
apply subdivision modifier to smooth it out

When I do this it appears as though the wireframe has worked as separate sections.

I have tried using the merge by distance feature to remove duplicated vertices, but it doesn't seem to help.
Does anyone know how to get this into a single clean structure?

Just wondering if anyone had any feedback about this? I am thinking that I might look at Sverchok to see if that may be the end goal, but it looks as though there is a steep learning curve to understand how to create geometry with the nodes. I looked closer at the cell fracture and yes the gaps are created between the 'fractured pieces' I am unsure how to edit the setting on merge by distance to allow large variances to be captured. I found a work around by scaling the model down, then applying merge by distance, but it didn't really capture all the gaps. Any help would be greatly appreciated!

I found the issue I was having. I had not known the merge by distance modal was expandable. I clicked on it and now it has the slider to adjust the distance.


text:
cant upgrade pip in blender 2.92
I am fairly new to Python and Blender so please excuse my lack of knowledge.
I have been trying to install an add-on for Sverchok (Scipy), but I cant install it using the pip option.
I get a message saying I need to upgrade pip, when I try to upgrade it, this is what outputs to the python console in blender:
Collecting pip
  Using cached https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl
Collecting setuptools
  Downloading https://files.pythonhosted.org/packages/9e/d4/b99a960314121a003e9f39c61dfde01a1010bb47661e193a7722f7f32d52/setuptools-54.2.0-py3-none-any.whl (785kB)
     |████████████████████████████████| 788kB 6.4MB/s
Collecting wheel
  Using cached https://files.pythonhosted.org/packages/65/63/39d04c74222770ed1589c0eaba06c05891801219272420b40311cd60c880/wheel-0.36.2-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\program files\\blender foundation\\blender 2.92\\2.92\\python\\lib\\site-packages\\pip-19.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.

WARNING: You are using pip version 19.2.3, however version 21.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

I found this link https://b3d.interplanety.org/en/how-to-install-required-packages-to-the-blender-python-with-pip/ which looked promising. But when I attempted to run this (by opening a text window, click new, pasting the code and clicking run) image below of what I have setup in blender) it says it cant install due to WinError 5 Access denied.

The output in python console in blender is this:
Looking in links: c:\Users\CJHMHTPC\AppData\Local\Temp\tmp57u_wh4u
Requirement already satisfied: setuptools in c:\program files\blender foundation\blender 2.92\2.92\python\lib\site-packages (41.2.0)
Requirement already satisfied: pip in c:\program files\blender foundation\blender 2.92\2.92\python\lib\site-packages (19.2.3)
Collecting pip
  Using cached https://files.pythonhosted.org/packages/fe/ef/60d7ba03b5c442309ef42e7d69959f73aacccd0d86008362a681c4698e83/pip-21.0.1-py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'c:\\program files\\blender foundation\\blender 2.92\\2.92\\python\\lib\\site-packages\\pip-19.2.3.dist-info\\entry_points.txt'
Consider using the `--user` option or check the permissions.

WARNING: You are using pip version 19.2.3, however version 21.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

So it seems I don't have permissions for some reason.
I see that it recommends to use --user option, but I don't know what this means or how to use it. I did some googling, but tbh it's all a bit beyond me, so any help people could offer would be much appreciated.
My end goal is to be able to install Scipy in Sverchok so I can use the 3D voronoi node in case that is helpful information.
Thanks in advance.

https://stackoverflow.com/questions/66751469/blender-trying-to-install-sverchok-addon-scipy-package-but-pip-is-out-of-date?noredirect=1#comment118112911_66751469
discussing some

Try running Blender as Administrator...it worked for me :D

Using python_exe = sys.executable will make it compatico with all OS's. See https://blender.stackexchange.com/a/122337/15543  IMO tho would make a python environment matching the python version of blender,  Install any dependencies there.  Run blender using the venv's python.

@batFINGER - thanks for the link to that thread, I did the second option which was to remove the path (i just renamed the blender python folder). Blander has now defaulted to my system python which has scipy installed with no issues, I can now use the 3D voronoi module, if you put this as an answer I'll add it as the top answer


text:
How to control transparent depth intensity to get even gradient based on another object?
So I'm trying to make a configurable way of revealing something inside of any object with corresponding node group. Whatever I did I couldn't get a nice gradient between pink and grey area which I certainly want.
And as I see it, the gradient shape has to be based on shape of the transparent plane, but gradient projects on cube with it's coordinates and choosing object-->object-plane didn't really help, because the gradient has to move with the plane and I would like to make it without using drivers if possible.
Also I want the gradient to repeat shape of the plane along edges(it can be a rectangle with round corners for example or a triangle).
Another problem is that if object placed inside of the cube emits light at certain angles it makes clear that there's a transparent plane floating in front of the cube, because the light stops for some reason, that I don't understand.

Here's my blend file

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Joining Meshes and then textures
since you did a fantastic job last time I thought I'd bug you all again. After a grand total of a day and a half total experience I was able to make this horribly optimized monstrosity.

What I'd like to do, is join all of these together and then create a texture for it, so it's not grey, faceless and ugly, it'll just be ugly.
Is there anything I need to do or will pushing A and then Ctrl J be fine? :/

When I tried this last time and went over to make the new texture and link everything together so I could paint it the blank texture started like this? I seem to remember it being blank before? Now it has lines?

If I try and use it, it's a single mesh as intended, and I can add the texture file in but it only affects half the model? So, I'm most likely horribly screwing this up, which is par for the course. How can I get it combined into a single mesh and get some textures going that, if possible, will paint the whole thing? :)
Thanks so much, as always! :)

Joining doesn't actually fuse the parts together. It's almost like it merely groups them. I say this because they can be separated later with a single command. You could make the whole thing one single mesh. Joining would be the first step if you actually want to fuse them. You would just have to go in afterwards and merge the relevant vertices to make the whole model one continuous, manifold mesh. Once that's done, designate seams as necessary and, with all faces selected, unwrap. Then all of the model's parts will be in the same texture space. And you can paint on the whole thing at once.

A simpler alternative approach to the above would be to go ahead and separate the parts again, and texture them separately, then join them back together afterwards. This might save you some tedium in the modeling department, but it would be less intuitive while texture painting.

One last thing: I mentioned designating seams, but, in a mechanical subject like this, designating seams is likely unnecessary. Especially if you intend to do all of your texturing with Blender's built in texture painting tools (as opposed to editing the texture externally in a program like Photoshop). If relying on the Texture Paint tools exclusively, then it's probably better to use Smart UV Unwrap, even though it tends to produce nonsensical mappings. That won't matter if all you're ever using to build the texture is the Texture Paint brushes in Blender.


text:
Unwrap Question
I've been poking through models to see if I can learn how to do various things better and I have a question about unwraps. I can do my own seaming and what not well enough for me and can generally get what I want to to work to work but I'm curious about how some unwraps are made.
For example; These bars are three faced, open on the back to save tris and have no seams.

And are unwrapped on the UV like so;

Which looks to me like a 'Project from view' type thing but has all 3 faces neatly side by side and flat and maintains the distance between them.
If I make the same thing and unwrap it, it does not look like that. Hell, if I unwrap that same object again, it doesn't look like that. They've been able to get the same perfectly flat effect on everything even though the seaming doesn't seem to work. (Ugh the pun.)
Can anyone point me in the right direction, I'm probably missing something blindly obvious, but I thought I'd ask.
Thanks so much! :)

Please use a title that reflects the content of the question. It should be succinct, unique and identifying, and summarize what the issue is so that users can at a glance broadly understand what your post is about before opening it. Use the [edit] link below your post and avoid any emojis salutations or extraneous text not essential to the question. Remember, your title is the first thing potential visitors will see, and will weight heavily on their decision to open your question, which will directly affect the number of answers you might get.

Seams aren't necessarily shown.  Use "seams from islands" operation in UV editor to see your actual islands.  In the case of your bars, they are a different island than the surrounding faces.  That may be because of since-abandoned seams, or it may be because they're separate geometry, unconnected.
How would I make those bars?  I would probably do a basic unwrap (to minimize distortion) and follow it up with a pack islands operation-- on just the bars.  That would give me a general rectangle that I could scale into whatever space existed on the UV map.  And of course, I'd try to pick a space that had some relationship to the place that the bars existed in world space.


text:
Curve Path Flat?
Quick question, why is my Curve: Path flat in some sections and circular in others? How can I make it round again and how did I make it do this in the first place? A quick run down of using it to make hand railing for machinery with less faces would be awesome.
This simpler, flatter shape uses a lot less faces than the normal Curve Path does and would be great if only it would stay consistently roundish around the corners. The up and along section over the back of the picture is round, at the first bend it flattens and stays flat the rest of the way.
Thanks all.

Check radius https://blender.stackexchange.com/a/129312/2214 you can learn more about curves here https://blender.stackexchange.com/a/58567/2214

Ahhh dammit, missed that one. Thank you so much! :)


text:
Ambient Occlusion on Project from View Black bits
What's causing these weird triangles in black on an Ambient Occlusion bake? I need to use project from view for texturing purposes but it doesn't seem to like this idea much. Is there any way to correct this black shadow triangle issues while keeping my project from view unwrap?
Cheers.

Okay then . Please delete the question.

I'd still like to know what's causing the issue? What causes these black triangle artifacts? Is it triangulation issues? Normals? UV unwrap? Can I not do project from views and have to AO work properly?


text:
Make normal lines finer?
Quick question, how can I get these large outer edges finer, like the inner ones? The inner set of doors is perfect, the outer set is way to thick but it doesn't seem to matter what I do to them they usually come out exactly the same. I want them both about the same as the inner set. Bear in mind I'm a total noob with this haha
Cheers.

it may be due to the Margin value in the Bake panel, it just add pixels around the UV island, take a look into your UV Editor to see how the UV island overlap. If this is the case you don't need to worry as it won't be displayed on your low-poly

Woo that's got it. Thank you so much!

It's due to the Margin value in the Bake panel, it just adds pixels around the UV island, take a look into your UV Editor to see how the UV island overlap. If this is the case you don't need to worry as it won't be displayed on your low-poly.


text:
Blender Unwraps, making sure things are the right way up
Quick question,
Is there a quick way to make sure objects are the right way up when unwrapped? For instance;

I want the middle of the dials to unwrap the right way up, if that makes sense? So if I write something on the texture later it's the right way up to? At the moment the vertex at the top of the unwrapped dial on the right is actually midway around the right hand side on the mesh.
Sorry if I'm terrible at explaining things haha
Thanks!

What do you mean right way up? Like facing outwards? Right way up in terms of world-space orientation? facing the same way relative to the object they're attached to? In any case, you can always just unwrap the object and then manually reorient the shells to how you want them to be. Once you've unwrapped the object the shells aren't going to reorient themselves and get misaligned from the text you put on the mesh.

Right way as in 12 o'clock on the model is 12 o'clock on the unwrap. At the moment I just manually make sure everything is in the right direction. :) It works well enough its just a little fiddly.

I'm a little late to the convo, but you should look into the TexTools addon, i honestly feel like it's a must have for UV unwrapping. But I'm pretty sure it has an "Align to world space" function built in.

Thank you so much! :) So far I've been manually rotating stuff, but that sounds much better.


text:
Extrude and Scale a window frame evenly
Greeting all,
I'd like to extrude and scale it evenly around the whole object, rather than pulling it towards the object center. Instead of scaling lopsidedly, is this possible or is there and easier way to achieve this?
Cheers!

Use the solidify operator.
Or the solidify modifier, if you prefer that.
Or the Extrude Along Normals operator, which I’m not sure what the difference is between it and solidify.
FMI, try docs.blender.org for the latest manual and API docs.

OMG. I completely forgot that was even there. Boy is my face red. :/

@Bhaal Well, God is good. You should’ve seen the time I thought wagon in “wagon wheel effect” was a German name of the physicist who discovered it .

@ZargulTheWizard I was there  brain.exe crashes for all of us sometimes


text:
Baking normals from hatch frame to body work
I'm trying to get these hatches to bake as normals onto the bodywork under them so I don't need to have the game render the whole thing. (obviously. :P ) Unfortunately I'm still VERY new at this and this is the first time I've ever tried to bake a normal map, usually I just model the stuff I want. I followed various tutorials but it never seems to come out anything like what I want. I assume I've buggered up either the modelling or the settings for the bake. All the normals are orientated the right way (Blue). Can anyone give me a quick run down of the step by step to get this to work? Any help would be much appreciated! :)
Thanks so much!
The hatches I'd like to use as normals.

The bodywork under the hatches, unwrapped and ready to go, in theory.

One of the results that baking brings.

Attempt number 2.

if your shapes are completely parallel or perpendicular to the faces that are baking, you won't have any result as baking the normals will only take face orientation into consideration (parallel or perpendicular can't be baked), it may be the problem here? I don't know why you have the second result though... Maybe share your file? https://pasteall.org/blend/

https://pasteall.org/blend/5ed48387e5fb4baf864ed16ba1ac33d8   So it wouldn't be able to baked the raised hatches onto the side of the body work? :/

What you could do is duplicate your main object, you'll call the duplication the "high-poly", boolean it with your hatches so that you get that:

If the faces of the high-poly are parallel of perpendicular to the faces of the low-poly that are baking, the bake won't catch anything as baking normals is supposed to record the orientation of the faces (perpendicular or parallel faces won't be recorded and will remain blue):

So scale the hatches face down a bit so that their sides are not completely perpendicular to the wall faces that will bake them:

Choose the Selected to Active option. Give a bit of Extrusion to the bake (like 0.1) because the faces of the hatches of the high-poly go a bit beyond the surface of the low-poly, so you need to make the bake start a bit before the faces of the low-poly. Now if you bake you'll get this:

Ahhh well explained, thank you! That's gotten most of it working, one side worked perfectly, the other side is yellow-y brown? https://imgur.com/a/xZUfjzb

it looks like inverted normals? maybe share your file again

https://pasteall.org/blend/7c87946a3ad54e4b95e22d2f9a9bea23 There you go. :) They seem fine to me? They aren't red, i assume thats what you mean? :) Thank you so much for the help, it's much appreciated.

increase the extrusion value a bit, like 0.05. Also unplug the Normal map of the high poly material

Ahh that's got it. So just fiddle with that value if it doesn't display quite right? :) Do I need to do anything with 'Max Ray Distance'? I just left it on 0.

just play with the Extrusion value, it allows to move the start of the bake, it is useful when the high-poly surface goes beyond the low-poly surface, which is the case here with the hatches. I don't remember what's the Max Ray Distance, probably the length of the bake scan (how far it goes), you don't need it here

Beautiful. Thank you so much! Much appreciated. :)


text:
Git Flow when coding for blender
I am sry if this is the wrong place to ask this or if this has already been answered elsewhere but I couldn't find it.
I am confused about the git workflow when coding for blender: When I clone the blender src I get a local repo with the blender src code, but as I understand it, I can't directly develop in this repo because I don't get a Visual Studio solution or smth similiar and I don't get an application to run/debug.
So I build blender and get another folder outside of my git repo called build_windows.. or something. In this folder I get a VS solution and an application to run/debug. Here I can work on the code with VS.
But how do I get my changes, that I make in this folder, back into the source code folder, back into the git repo? I can't imagine I have to copy the changes manually.
What am I missing in this workflow? If someone could explain that to me, I would greatly appreciate it.
Thank you!

You don't edit files in the build directory (it actually doesn't contain the C or C++ source files). You do use the build for debugging and due to the project files generated by cmake VS knows where the actual source files are located. None of this has anything to do with a particular git workflow though. That would be how Blender manages feature and release branches, merges and so on.

Thank you! Yeah, I thought I had to work in the build directory and was missing some kind of step to get my changes done there, back into the repo.

You work with source code in the src folder of the cloned blender repo directly. If there is no project file for the IDE included (in your case the Visual Studio Solution) you need to create one and set it up to use this src folder.
Fortunately, Visual Studio offers support for git, so all you have to do is create a new Visual Studio Solution and set up git and the blender repo. Then you can track your changes and do the versioning in Visual Studio.
Of course you can still use the git command line but the source files stay in the src folder. Git handles the changes and keeps track of them. The repo itself with all versions and changes is usually stored in a folder named ".git" inside of the main folder.
Hope that helps.

Thank you! That helps a lot. I was confused because there was so much focus on building blender using the make script on the wiki, so I thought I had to work with that.


text:
Help me understand the viewport render pipeline with cycles
I am trying to understand the pipeline that creates a rendered image in the viewport with cycles from start to finish in the blender/cycles source code.
A little bit of context (Skip if not interested):

 A colleague of mine and myself are trying to develop a derivate of blender in which the viewport isn't fully rerendered every time any change to the scene is made when using cycles as the viewport renderer.
 Instead we want to achieve a logic that detects the parts of the view that where most affected by changes and only rerenders those. The goal here is to achieve a less interrupted workflow for artists.
 If you have any suggestions how we can achieve this or any material on that matter, pls kindly forward it to me if you can.

So far, I could identify the following steps in the code:

draw_manager.c : DRW_draw_view ->
draw_manager.c : DRW_draw_render_loop_ex (render Loop for external render engines?) ->
draw_manager.c : drw_engines_init ->
external_engine.c : external_engine_init (Cycles is an external render engine?) ->
draw_manager.c : drw_engines_draw_scene ->
external_engine.c : external_draw_scene ->
external_engine.c : external_draw_scene_do

These steps seem to appear every time a view is updated by any sort of event and they happen independently of the main window loop started in blenders main function in creator.c.
Afterwards, if I use the debugger to jump further into the code, I get directed through a bunch of RNA related classes which I can't completely wrap my head around. I can't seem to find the point where the blender code finally calls the cycles code.
What I do know is that eventually I end up at the draw function in the blender_session.cpp of the cycles code.
It would be greatly apprecheated if someone could help me understand the code that happens inbetween these two parts. Where exactly is the point where the blender code calls the cycles code?
English isn't my native language, so please forgive any mistakes i might have made in this question. I thank all of you in advance and hope my question is formulated understandably enough to be answered.


text:
Texture Paint not Appearing on Model
I am currently having issues with my texture paintings in Blender, the short explanation being that while I can pint on both the model and the UV Map, it does not appear on the model. I do have a solidifier layer on for a dynamic outline, but removing it does not fix the issue. I am still fairly new to Blender, so I have no idea what the issue here could be.

hello, please pack your image and share your file: https://blend-exchange.giantcowfilms.com/

Without seeing the blend file I cannot be certain that this is the cause of your issue, but I have had this exact problem before when I was painting on a texture imported from a .dds (DirectDraw Surface) file.
When re-saved as a png file Blender could draw to it in memory and it updated just fine on the model.  When left as .dds it just wouldn't work, or would update in odd infrequent spots.  Even though the file is held in memory in Blender and it shouldn't matter what format it's in on disk... it does.  If you have a texture file and it isn't png or something equally simple, try saving it as that?


text:
Rounding edges of extrusion
Afternoon, pardon my noob question but I've only started learning in the last few days.
I'm looking to roll the edge of this around neatly
[
So they're neatly curved, but not as in the bevel tool which rolls them in. Maintain the up and down sides but making them circular.

I'm working on the headlights here.

Tried the 'spin' tool but I think I lack the skills at the moment to get it to work right. Suggestions and some steps would be really appreciated! :)
Thanks so much.

In edit mode press CTRL+R to add two cuts. Then select those new edges and scale them outwards on the axis that is needed until you're happy with the size. Then bevel the edges? Here's a quick demo of what I mean:
https://gyazo.com/2ee0c086afa1340316a18c01181d3571

Some more advice.. If you want to create your circles exactly in the middle of your newly bevelled edges then simply connect the vertices like this, using J:
https://gyazo.com/664d1a731d4e84646b2ba27b0b204ae6
This will create a vert exactly in the middle of that curve. Then snap your cursor to it by pressing SHIFT+S> Snap Cursor to Selected, then simply create a cylinder there.

Ahhh thank you so much! That is perfect! I was a little nervous asking for help that might annoy people, you know? It's simple stuff once you learn it. :) Thanks again! :)

Never be afraid to ask okay? When I first started being a 3D model artist about 19 years ago - there weren't video tutorials and such so I had to teach myself. I know how hard it can be to want to follow your dreams but having nobody to ask yet being frustrated because you can't figure it out. I actually had people make fun of me because I was such a "noob" and wasn't as good as them. That's why I help people because I know how it feels to be in that situation and it's frustrating, it can make you want to give up. It can really harm your development. Plus it's the right thing to do ^.^

@TheJovialBrit Feel free to post your solution as a full answer :). So others can upvote and the OP can accept it.

In edit mode press CTRL+R to add two cuts. Then select those new edges and scale them outwards on the axis that is needed until you're happy with the size. Then bevel the edges. Here's a quick demo of what I mean: EXAMPLE

Some more advice.. If you want to create your circles exactly in the middle of your newly bevelled edges then simply connect the vertices like this, using J: EXAMPLE

This will create a vert exactly in the middle of that curve. Then snap your cursor to it by pressing SHIFT+S > Snap Cursor to Selected, then simply create a cylinder there.

Maybe this is a good place to contrast direct modelling, where you make curved profiles yourself, and subdivision-surface modelling, where you construct a framework, and anticipate how Catmull-Clark subdivision will make curves for you.

Bottom Row: Direct modelling
On the bottom row, the corner-verticals are selected, and then bevelled with enough segments to give you the curve with the required resolution. (If you bevel with 'Clamp Overlap' on, and take the width as far as you can, you will get a perfect circular arc. There will be duplicate vertices where the bevels meet: you can remove those with M Merge > By Distance)
Then the sharp top and bottom edges of the extrusion are narrowly bevelled too, with a couple of segments, to give smooth-shading some guidance. Without that bevel, the smooth-shading would interpolate normals straight over the transition from the horizontal to vertical faces, with a very unnatural looking result. (You can also guide the smooth-shading by splitting the normals, with Auto Smooth.)
Advantages / Disadvantages:
Up to step 3, so far, so good, for lower-poly modelling. The geometry has a lower resolution, so you can see curves are segmented on close inspection, but the shading makes them look smooth. Long thin triangles have been created in the base plane, but so long as it is flat, so smooth-shading doesn't have to interpolate normals across those, that's fine. This is the kind of topology that Booleans, and CAD packages, often generate.
The direct approach has advantages, up to step 3: it's quick, and limits the number of edges propagating across the model. The disadvantages become apparent at step 4, if you want to use a Subdivision Surface modifier. The triangles have broken the flow of face loops. If you do need to subdivide the geometry for higher resolution, that does not play well. Also, a lot of Blender's (and other applications') tools are geared to selecting, inserting, and sliding loops of consecutive quadrilateral faces. The triangles make the model harder to adjust, further down the line.
Top Row: Subdiv. Modelling
Here, a couple of extra loops are CtrlR cut down the length of the extrusion, and the corners are scaled back to give it half-hexagon ends.  Again, at step 3, the sharp edges are bevelled, to hold the normals. Some loops are cut across the extrusion, too. These are optional, but can be used to control the curvature that's generated by the Catmull-Clark subdivision modifier at step 4. Step 4 in both rows shows the result of 2 levels of subdivision, optimally displayed, and the 5th copy shows all the edges generated by the subdiv.


text:
how to change grease pencil radius using brackets []
brackets not working for changing the brush radius like it does for sculpting/texture painting. Is there a a keymap to get this to work similarly?

would be great to have this. I tried manually adding it to the keymap, copying the brush.scale_size settings from sculpt into GP draw mode, but it doesn't work...

I couldn't edit the keymap to get this to work at the time this question was asked, BUT the shortcuts have been added to the 3.0 alpha build:

New Bracket keymaps ([, ]) to increase and decrease brush size. (c58bf31aed)

3.0 Grease Pencil release notes
Daily builds download page


text:
Blender 2.9.1 Boolean Modifer Union
Im a blender newbie and using blender for 3D modelmaking for printing.
I have an issue sometimes when I join two objects. Initially I was using the JOIN operation but now I use the Boolean Union. the 3D Slicers (Cura in my case) doesn't like join. However, I do have a new problem.
Sometimes, not always, when I Boolean Modify and union two objects, the face of one or both objects becomes kind of shaded. In these cases, the slicer always fails.
I've looked at the mesh and duplicate vertices and non of that seems tobe the case.
Can some explain to me:

what is going on?
how to fix this?
is there a better way of doing this?

I have included a pic of a cone and a cube. The cube is affected.

why don't you just use "join objects"? or do you need the boolean modifier? But...you are right, it is weird...i could reproduce your effect - for me it looks like a Blender bug.

@Chris, Yes I have to use modifiers. JOIN in terms of export to STL for 3D Printing doesn't create one object. so for instance, only the Cone would appear.

The zappy looking face on the close side indicates a face in the same location. Are you using the Boolean Modifier on the cone with the cube as a separate object? If so, I highly recommend having the two as one mesh object and using the edit mode Boolean operation instead. To fix the situation you have without doing this, apply the modifier on the cone, then delete the cube: The cone’s current modifier-added geometry is identical to but not the same thing as the cube and is overlapping it.