text:
Why is this part of the mesh following this bone even when I paint over it with a fully-weighted Subtract brush in Weight Paint mode?
On Blender 2.93
I'd rather not post the .blend as this model is meant to stay private. The strand of hair that moves with the antenna's bone in this screencap really says it all.

It was exported as a VRM from VRoid Studio and then imported into Blender using the VRM Import plugin. In the rest mode, i.e. before I pose any bones, that strand you're seeing is part of the root of that antenna, which extends down a bit inside of the head. On both sides with both antennae, VRoid has auto-generated a weight paint configuration in which those strands move with the outer 3rd bone of the chain. I've gone into Weight Paint mode and made sure that entire strand is all blue, but it still happens. My guess is maybe one single vertex is still weighted and inexplicably ignoring my brush when I Subtract paint. I've already spent hours trying to mess with Vertex Groups and weights, but I can't get anywhere because the Vertex Weight slider in Edit mode doesn't do anything (bug?).

You could delete the character except the hair so that we can try, and share the file here: https://blend-exchange.com/

Blender decided to also take a dump on the entire model and throw off all the weight painting. It's been spewed all over the place. This model now moves like an eldritch horror. I have no clue why it happened except if maybe that stupid Vertex Weight slider in the Vertex Groups menu is so bugged that it broke everything just from my trying to use it once on one single group of just a few vertices.
It's going to be a bit before I can get back to this issue. I have to start all the way over from the VRM file now.


text:
Can't insert the new location to all keyframes
So I am changed the hand location on animation. I need to copy the new hand location to all keyframes so the animation will be played on the hand with the new position.
I am pasting pose, choosing keyframes in action editor, pressing "I", choosing "Location" option and nothing happens. Position returns to the same as before.
How can I do this?

do you mean that for this hand there is a series of keyframes all along the timeline?

Yes. On imported animation keyframes are set all along the timeline.

so I suppose that you need to delete all the location tracks for the hand

Ok, think I found the solution. "Visual location" option in same menu works for me.

source: Stack Exchange

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

sort: votes


text:
Is it ghost layer or what is it?
Hello team and everyone,
I dunno how but some objects in outliner dupped and generated automatically (or maybe I accidentally clicked a shortcut key IDK).
Now, whenever I try to delete the dupped objects in outliner, original objects are also deleted, I even can not move them.
Please help me to get rid from this problem.

Thanks

This is expected behavior. The objects are showing up twice because they are parented to an object that is not in the same collection as them. They appear primarily in their collection, secondarily as children of the parent object. To make this duplicate appearance not happen, either place them in the same collection as their parent object, or vice versa.

When I place parent objects in duplicate collection and try to delete duplicate objects the parent objects also gt deleted.

@SGPainting3D You misunderstood. Each “duplicate” is actually only one object, it’s just showing up twice in the outliner. Don’t try to delete it.

Ohhhh I see, thank you so much for the explanation.

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


text:
what is this weird viewport shading?
Part of this mesh is now shaded in the viewport in solid mode with this look that changes shade when you rotate the view. Like a hologram.
What is it?
Blender... where you hit the wrong key combo and 2 hours later have no idea what obscure hidden feature you've enabled.

this might be because your mesh normals are a little out of wack.  Try going to edit mode, press "A" to select everything, and then press "Shift N" to recalculate your normals

At first sight, it also looks as if some of your faces are set to shade flat (in Edit mode), and some are not.

@ETHANDAY It's not normals, that didn't fix it. Thanks though.

@RobinBetts Seems that setting everything to shade-flat doesn't fix it either.
I think it has something to do with the materials that I'm using in the submesh

It was this setting under object data parameters. "Normals->auto smooth" Which is somehow different from the other ways of doing it.


text:
Blender outliner what are the differences between the little green men?
I've imported a mesh and an armature and parented them. There are two little green men in the outliner and one is the Pose I have worked hours on. What is the other one, where the little man is holding a square. Is this reset pose? When i click it, i loose all my work.

The green man icon with the square indicates (and when clicked accesses editing of) the skeleton, rig, or Armature. It is about the number of Bones in the Armature, their relationship to each other, and their base position and rotation. (So even though it is the armature icon, an armature has a base pose, because it cannot not have one.)
The green man icon that kinda looks like its running indicates (and when clicked accesses editing of) the Pose, or poses (That means poses that are different from the base pose of the Armature).
When you click on the pose icon, edit a pose (for instance move an arm up), and then click the armature icon, you should see (and be able to edit) the armature (in its base pose, with the example arm back in its base position, like it hasn't been moved).
But if you then click on the pose icon again, you should see the edited pose (with the arm moved up) again.
I have come across situations though, where editing the Armature resulted in loss of the pose (at the current frame). But you can save your pose by either adding a keyframe for the bones in the Armature, or save the bone position and rotation in the Pose Library.
I advice the latter; then you can always keyframe them later if needed.
Select your armature, go to Pose Mode. Then Properties > Object Data Properties > Pose Library > New. Then select the Bones for which you want the position an rotation saved (or simply select all of them) and click Add Pose (the little Plus icon). Now you can reload the pose by clicking Apply Pose (the little magnifying glass icon).


text:
"Intrude" faces instead of extruding
I want to create a stairs-like extrusion with a face - But kind of inverted, like intruded.
The result should be something like this.

However I don't want to extrude the left face to the top, but instead to intrude the right face to the bottom. But when I do this, the following happens:

I suppose this is exactly the right thing and handled perfectly well by Blender, it's just not what I want. The outer faces still exist, while the top face is just moved to the inside.
I hope you understand what I mean, if not, please leave a comment.

Like in cegatron's answer, you should use Loopcut (CtrlR)
Once you have made a new edge loop, delete the faces with X or Delete> Faces, then fill the holes with F:

you could try this addon:
https://blenderartists.org/forum/showthread.php?376618-Add-on-Extrude-and-Reshape
It works to push/pull faces creating needed faces auto filling the holes

It is generally advised to include more information directly in your answer. If a link no longer works at some point, your answer will still have value.

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


text:
Blender animations and Unity
I have created two Cubes and one bone which controls both objects (cubes). First cube is Red, second one is Blue. In first part of animation Red cube is rotating using bone and Blue cube is Hidden from outliner, in second part of animation Red cube is hidden and Blue cube rotates using same bone. Now when I save this as .blend or .fbx and import it to Unity game engine, and start animating both Cubes are Shown full animation and only rotation is animating. Why doesn't animate Hide on/off option from Blender outliner ?
Thx
Ivan

Don't bother to do your animation work in Blender. Unity's animation tools are quite robust, and animating in Unity will make it easier to make different animations and behaviors for one model.
Blender behaviors like showing and hiding can't be translated accurately into Unity behaviors. So even if you had it working in Blender, you would have more work to do once you import it into Unity.
Just export what you have in Blender WITHOUT any animations and put it in Unity. Drop the model into your Unity scene, then open up the Animator. Click the dropdown under the record button and select [Create New Clip].

To show and hide your cube, go to the appropriate frame of the animation, then enable/disable its Mesh Renderer. This will automatically add a keyframe to the animation clip. Do the rest of your animation as you would normally, adding rotation keyframes and such.

For this basic animation and to show/hide cubes, you need to export the bone and cubes (both parented with armature ) to unity and do the animation in their.
Only your bone based animation and shapekeys are exportable to unity3d. Not other animations like moving one box location , rotaion or show/hide.

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


text:
How do I export an OBJ to an .X file
I just downloaded blender 2.70 windows 64. I want to convert .obj files to .X files to use then in the pmd editor and MMD. I cant find an export to .x file. the tutorial that I am looking at is for an older version of Blender.

AFIK not all import/export scripts have been ported to the new Python API. But if you know on which Blender version it worked you can download the old release here.

I'm pretty sure the export option for .x is there. Look again. If not you must have disabled it.

Enabling Import & Export of DirectX 3D Model file format .X
Blender 2.70 comes with the "DirectX X Format" Export addon built-in.
However, the "DirectX Importer" Import addon is not built-in. If you'd like to have the ability to import .X files, you can download it in this addon bundle.   (Note: that post describes how to add the addon to Blender's scripts folder.)
To enable these:

Info header -> File -> User Preferences

Then, in the search box, type Direct. Two DirectX addons will appear:

The one named "DirectX Importer" provides the ability to Import .X files
The one named "DirectX X Format" provides the ability to Export .X files
Check the checkbox at the right hand side of the addon to enable it
If you want to always have these import/export options in your File menu, then click on the Save User Settings button at the bottom of the screen:

You will then have the .X file format as import & export options:


text:
How can I orient objects duplicated along a curve extracted from a surface?
I extracted a curve from a surface (with P in edit mode, then Alt+C in object mode). I then duplicated a cone along this curve but the duplicated objects are distorted and I can't orient them normal to the surface.
How can I duplicate the cones without distortion and orient them normal to the surface ?

my file

The issue is your curve has unapplied scale. Apply it with CtrlA> Scale and it will work fine (note that you will have to re-position your cone):

Awesome, thank you! It's working perfectly. This solution also helped me for another problem. It wasn't possible to obtain an even thickness on the surface with the solidify modifier without applying the scale.


text:
How to best make an addon operator that involves selecting both faces and vertices in edit mode?
I'm working on an addon that works in edit mode. The user must select two faces, and the addon produces a curved, loopy "handle" that connects the faces together. In addition, the user must select two vertices, one adjacent to each face. This determines how the vertices of the two faces are correlated and allows adding a twist to the handle. This is a port of a feature from an obscure research modeling program called TopMod, and you can read more about this feature in the paper "Interactive Construction of Multi-Segment Curved Handles" by V. Srinivasan et al. See also How do I do topmod style loops in Blender?
Blender has modes for selecting faces and for selecting vertices, but you can't have both modes at once. To work around this, my current strategy is to define two operators. The first is called "Select Faces for Handle" and requires exactly two faces to be selected. When run, it stores those two faces in the global state of the addon. The second is called "Make Handle" and requires two vertices to be selected (possibly just one if the faces share a vertex). "Make Handle" reads the two stored and now deselected faces, checks to see that the vertices are adjacent to the faces, and constructs the handle.
I have everything working, but the workflow is pretty awkward, and when deselecting the faces it's easy to lose track of where they were.
Within the constraints of an addon, what would be the most user-friendly way to have a user select both faces and vertices in a single operation?

You can certainly have (and use) both modes selected at once although I've no idea how you would do that with Python. Click on the top-left Vertices icon then Shift-click the Faces icon.

@JohnEason Didn't know that, but when I select a face it selects all the adjacent vertices as well, when I want the user to pick exactly one per face.

Yes. It would do if you have both activated. I doubt you can select a face without the associated vertices.


text:
How do I render and save an image from the command line in a script?
I'm calling Blender from the command line with blender --python script.py, and in that script I'm rendering the scene and saving as an image. I tried this:
import bpy

bpy.ops.render.render()
bpy.ops.image.save_as(filepath="render.png")

but this produces RuntimeError: Operator bpy.ops.image.save_as.poll() failed, context is incorrect. I believe the correct way to address this is to override the context as shown in an answer to a previous question of mine. Something like this:
import bpy

for area in bpy.context.screen.areas:
    if area.type == "IMAGE_EDITOR":
        image_editor = area
        break
else:
    raise RuntimeError("IMAGE_EDITOR area not found")

with bpy.context.temp_override(area=image_editor):
    bpy.ops.render.render()
    bpy.ops.image.save_as(filepath="render.png")

But the image editor is not in bpy.context.screen.areas, so the RuntimeError is triggered. Any ideas on how to do this properly?

You can render straight from command line.
Or you could use the render operator with image saving. That's
bpy.ops.render.render(write_still=True). See the documentation

Thanks. How do I control where the image is saved when using write_still=True?

@wwww use the argument -o filepath it's described in the docs linked in the answer. :)

What I'm asking for is a way to set that in the script rather than the command line options. I'm hitting render multiple times with different output paths in the same script.

@wwww You can probably set up view layers, compositing, and other functionality to do what you need. Rendering is multithreaded and Python scripts might have issues with that if you are planning to render multiple times or do something immediately after rendering from a script. Might be better to modify the file, programmatically if needed, but then save and render separately. This is starting to sound a bit like an XY problem. I would suggest asking a separate question about the whole thing you are attempting to achieve and provide all the context.

@MartynasŽiemys Fair enough, I'll accept your answer.


text:
How to add text (or texturize it) on a curve?
I'm trying to add a simple text to an Archemedean curve spiral, just like I did with this similar shape, which is a mesh

Mesh
However I need to animate this to do a simple squash and stretch, which could be done with shape keys but using a curve (apart from it's efficiency, the spring wasn't deformed when resized on Z axis)

Curve
I'm trying to add that same text into such curve, have tried generated texture coordinates, aswell as UV, changing the image texture projection, interpolation, extension, none have worked properly, it's been a real nightmare, and I would infinitely appreciate any guidance.

If the object is a [Curve], you may choose to apply [Curve to Mesh].  Is that acceptable to you? Then texture mapping is easier or at least more common.

Yes, agreed. ^ I would convert the curve to mesh and then UV unwrap it to ensure the text stays exactly in place on the mesh.

If you set the spiral path's Twist Method to 'Z-Up', you can use its native Round Bevel, and its native UV Map.
Shape keys of the spiral in a couple of Edit-Mode Z-scales will map without distortion:

If the mapping in the material is the problem, then here's an example of the way the native UV can be used to map the text once in the profile circumference, and at intervals along the length of the spring:

New Mesh with Existing Curve, UV coordinates, Curve Modifier
The cylinder mesh can be UV Mapped in the standard fashion.  The Curve modifier beforms the cylinder into a spiral in a second step. Shader Nodes allow the user to specify UV coordinates in nodes.  This allows image placement in UV directions and animation of location.  This flexibility may be important because the original question has spiral and the long cylinder.  Blender has many options for manipulating UV Coordinates.

Please consider the following steps.  The steps are abbreviated and can be more detailed according to comments.

Use your existing spiral
Add cylinder mesh. Mesh length will probably much longer than diameter. In edit mode add seams. UV Unwrap.
Align mesh origin and curve origin.  Add Curve Modifier to mesh and adjust to suit your tastes.  You many need to adjust cylinder length and position and rotation about long dimension.

Image Above.  High Level.  A Spiral Curve exists similar to yours.  A Separate UV Mapped Cylinder mesh with UV Seams. Mesh was UV Mapped in its original state in edit mode. The Cylinder was quite long to occupy the Curve.  The circumference is much smaller than length. Please see the Curve Modifier which allows mesh to follow spiral. Curve Modifiers works best when the origin of mesh and curve coincide.  Please see other educational content on Curve Modifier if that suits you. Zoomed out view to show some texture on a restricted part of mesh.  Zoomed in view to show texture detail.

Image above.  Shader Nodes.  Please inspect and improve.    Other approaches are possible. Upper Right Frame designates the UV coordinates of the texture to be placed ...  and remaps to [0,1].  Note the reader uses the numerical coordinates to place the final image. Thus you can slide the image around the length and around the shorter diameter. An image derived from OP question image was used.

Image Above.  Cylinder in edit mode for UV Unwrap respecting seams.  Seams are visible and rather difficult to see in the image. Partial selection of faces and thus partial appearance in UV editor area.
Please Click to zoom.


text:
Drivers to change rotation based on distance then cap it at a specific rotation
I'm having a hard time setting up a driver to rotate my object based on the proximity of another object. I'd like to have multiple faces of an object rotate 180 degrees based on the proximity of a driver object. I have so far managed to get a simple 180 degree rotation working by using the expression:
max(0,min(pi,5-abs(distance))) with the distance variable being the distance between my driven object and my driver object
It's a problem however because once my driver goes over the driven object and the distance starts to grow again,  it rotates back to the driven objects original rotation. I'd like for this rotation of 180 degrees to stay as I would like to do a procedural animation of walls changing colour without having to rotate each plane individually. I'm using drivers as I need to be able to bake the animation to keyframes so I can export the objects with the animation.
I hope I gave enough context :)

Try this:
max(0,min(pi,5-abs(distance))) if (yTorus - ySuzanne) > 0 else -pi

So only if yTorus (which is the y coordinate of my Torus) is bigger then ySuzanne (which is the y coordinate of my Suzanne) then i take your function. if this is not the case, i take a constant (in my case -pi).
Result:

driver settings:

Note: i took here the y coordinate as an example. Of course you have
to adapt this to your needs. I don't know your special specifications
because you didn't tell us all the details.

It works! thank you so much for such an informative answer, apologies that I didn't give all the details, this is my first question and I'm still learning how to post questions! Thank you for the fast answer to my question :)

You are welcome! If my answer helped you, please click on the checkmark left of my answer! Thank you!


text:
How to add physics in animation
I have a rigged 3D model and the pre-recorded animation, and now I want to add some physics to the model. For example, when the model is moving and run into obstacles, collisions are expected, and I hope the pre-recorded animation can change according to the simulation. How can I do that? Simply setting the model as Rigid Body seems not to work.

did u try set rigid body to passive and check animated, shape to mesh? if that does not work, pls provide blend file with these settings set and so we can check it out. Since you didn't show us any settings what you have done we cannot really help you instead of just guessing or you watch some yt rigid body beginner tutorials.

I tried but it did not work. I provide the file in a new question


text:
Enabling GPU rendering on headless linux machine
I'm trying to enable GPU rendering on a headless linux machine. I'm using the following code:
            print("----------------------------------------------")
            print('setting up gpu ......')

            bpy.context.scene.cycles.device = "GPU"
            for scene in bpy.data.scenes:
                print(scene.name)
                scene.cycles.device = 'GPU'

            bpy.context.preferences.addons["cycles"].preferences.compute_device_type = "CUDA"

            bpy.context.preferences.addons["cycles"].preferences.get_devices()
            print(bpy.context.preferences.addons["cycles"].preferences.compute_device_type)

            bpy.context.preferences.addons["cycles"].preferences.get_devices()
            for d in bpy.context.preferences.addons["cycles"].preferences.devices:
                d.use = True
                if d.type == 'CPU':
                    d.use = False
                print("Device '{}' type {} : {}".format(d.name, d.type, d.use))
            print('setting up gpu done')
            print("----------------------------------------------")

and I got the result showing as follows:
----------------------------------------------
setting up gpu ......
Scene
CUDA
Device 'NVIDIA TITAN Xp' type CUDA : True
Device 'Intel Xeon CPU E5-2620 v4 @ 2.10GHz' type CPU : False
Device 'NVIDIA TITAN Xp' type OPTIX : True
setting up gpu done
----------------------------------------------

However, I found the rendering speed still very slow (similar to CPU rendering), and nvidia-smi showed that no processes were running.
My blender version is 3.3. Is anything wrong with my setup?

This could be because you have CUDA libraries installed, but not the nvidia drivers.  When you run blender what is the output of nvidia-smi?  Do you see the blender/python process listed?  If the nvidia-smi command isn't found that would indicate you are likely missing the nvidia drivers and need to install them to take advantage of your GPU.  As far as I can tell, if the CUDA libraries are present and the GPU is identifiable Blender will silently fall back to using the CPU even though the GPU shows up in get_devices() and you set your compute_device_type to 'CUDA'.
Specifically, I had this same problem running blender on a google cloud kubernetes cluster with a GPU and the issue was that I hadn't added
resources:
  limits:
    nvidia/gpu: 1

to my container yaml config.  Apparently without this google cloud doesn't mount the exposed volumes with the nvidia drivers.  So even though I was building a container FROM nvidia/cuda:11.4.2-base-ubuntu20.04 which makes sure all CUDA libraries are present and the system could identify the GPU with lshw, I didn't have access to the nvidia drivers so Blender just happily used the CPU instead.  (Note the volume with the binaries only exists if you've installed the nvidia drivers in your cluster https://cloud.google.com/kubernetes-engine/docs/how-to/gpus#installing_drivers)


text:
Armature Weight Paint - Not Easing, not smooth, 1 to 100, not stretching, deform not smooth, deform not easing
I have applied armature to a mesh and modified the weight paint. When I pose the armature, it doesn't deform the mesh smoothly. If the weight is greater than 0.001 then it seems to deform it 100%.
How can I get this to deform smoothly?

Weights are relative to other weights.  If a vertex is weighted 1.0/1.0 to two bones, or 0.5/0.5, or 0.0001/0.0001, the weights are the same: the vertex is equally weighted to both bones.  Likewise, if a vertex is weighted only to a single bone, it doesn't matter what its weight is, because the relative value here is 0: even 0.0001/0 is fully weighted; all of its weight is on its one bone, regardless of what number that is.  If you want to see the effects of gradated weights, you need at least two bones.

Solution found here:
https://blender.stackexchange.com/questions/230265/weight-painting-problem-smooth-weights-not-working-the-deformation-is-not-smoo

I think you need to add some weight for these vertices to another bone. For example, you could use the root bone and add a very small amount of weight for these vertices.
They will then have a relative weight on the bone you want to move, compared to the root bone, and should deform correctly.


text:
How to make hard edges blend in Eevee transparent emission material?
I have an emission for a supposed laser beam of a (two beams going in and out) but it just looks solid boundary. How can I remove the hard edges? I want to keept the illumination but want to get rid of edges
If this is not possible in Eevee, how could I do it, softening the edges etc?
PS: I am beginner in blender, just started using it yesterday.
Any help is gratly appreciated

It looks like you have enabled the Bloom option, if you push the Emission strength it will make the object more blurry, but at the same time it will make the color brighter, which you may not want. Or you could use the Compositor to create blur on the objects you want, or on your whole scene?


text:
(Blender 3.2) How can I use Python to change the variable ID of the property in a driver?
Been searching for an answer to this for quite some time, but haven't been able to connect the missing pieces just yet!
My setup is this:
I have an armature, and an FBX object of a face with animation (Hence forth referred to as Face). I've created drivers on the armature that reference specific shape keys and values on the Face. This is my really cheap and dirty way to do facial motion capture, and I've gotten it working very well at the moment, but I've run into a slight issue. Each new capture I do has a new Face that I have to import. Thankfully, all of the shape keys are named the same, but the actual Key they use is a different number.
For now, I've been plugging in the new key each time I have to import a new Face model, but this takes a lot of time and I'd love to be able to run a script where I plug in the new Key number, and press go and it does it all for me, but have been unsuccessful. The closest I get is being able to get down to the driver itself, but I need a script that does a few things:

Checks the selected armature for drivers
Checks those drivers to ensure that the variable ID is set
Change the variable ID to the correct one for each driver found

The path for the variable and value are all the same as well, I just need to change this one little thing and I'll have saved many hours of time. This is what I've gotten so far (Taken a bit from this post: How can I quickly and accurately find out if a bone is being used in any driver?):
import bpy

def find_drivers(sel):
    objs = []
    for obj in sel:
        try:
            obj.animation_data.drivers
        except:
            pass
        else:
            objs.append(obj)
    return objs

if not bpy.context.mode == 'POSE':
    sel = bpy.context.selected_objects
    objs = find_drivers(sel)
    driver_list =[]
    for obj in objs:
        for drv in obj.animation_data.drivers:
            if drv.driver.variables[0].targets[0].id.type == 'SINGLE_PROP': # Checks if the Variable Property type is set to Single Property
                if drv.driver.variables[0].targets[0].id == 'Key.068': # Check if the ID is set to the previous Key
                    drv.driver.variables[0].targets[0].id = 'Key.094' # Change to the new key

Upon trying this though, nothing changes on the armature itself and I don't see any errors either. I'm quite a bit lost at this point, and any info that's out there is outdated as I'm on Blender 3.2, and a lot of coding changed past version 3.0. I'm also quite new to scripting and this is the closest I've gotten to anything touching the drivers on the armature in python, so I wouldn't be surprised if the whole thing was wrong. Can anyone help me or point me in the right direction on this?

Solved, kinda! After a lot of trial and error and help from someone much more advanced than I am, I figured out part of the problem. I actually managed to find an add-on that does exactly what I needed, and given that I've been trying to do this for a few months, I'm somewhat just tired of looking at it and want to get started on the nitt-gritty of my animation project. However, I'll go ahead and post all the information I've dug up here for anyone else searching for something like this:
Drivers are normally stored in an object's animation data, which still holds true for bones, but the path to access that is a bit different. We have to tell Blender that we want to access a specific pose object's animation data and drill down to the drivers within that. You can see the hierarchy a bit in the Outliner:

This allows us to access drivers that are located on individual bones, instead of just the armature object.
The Caveat
This only works for the first variable in the driver. It is possible to iterate through multiple variables within drivers, but unfortunately I haven't been able to figure out how. If you've only got one variable set in each driver, continue!
Making the change
Here's how to do this finally! First, we need to set the scene to Pose mode, so that it can more easily reference all of the bones we need, and allow us to select specific bones (But I have them all selected, so omit this if you want)
bpy.ops.object.mode_set(mode='POSE')

Next, select all the bones:
bpy.ops.pose.select_all(action='SELECT')

Now we need to create a variable that references the correct information, but mostly so to make our lives a littler easier when creating the rest of the script. The drivers for individual bones are located in the animation_data, but what makes this different from just regular objects is that we have to use 'pose_object' here instead of object to get the correct path.
drvs = bpy.context.pose_object.animation_data.drivers

Next, we need to iterate through each driver that was found under 'drvs':
for i in drvs:

Now we setup another variable to drill down to the actual driver variable. Remember, this is within each individual driver now!
driver_var = i.driver.variables[0]

From here, you can change whichever bit of information you'd like, depending on the id_type that you want. If you need info on what kind of data you can use here, use the dir() command. I'm looking at changing the specific Shape Key the target variable is using, so in order to do that I have to reference the entire data path of the shape key.
driver_var.targets[0].id = bpy.data.shape_keys['Key.068']

The "[0]" is a placeholder for the target that each individual driver is using as the script iterates through all the drivers it found. Once you run this, each driver will have the referenced Key set properly.
If you'd like to run checks to ensure that you're only changing ones you want, use this before you change the key:
if driver_var.type == 'SINGLE_PROP':
    if driver_var.targets[0].id_type == 'KEY':

This checks to ensure that variable type is set to "Single Property", and the target ID Type is set to "Key". For reference, here's documentation on the different variable types and target ID types you can use.
The Code
Finally, here's the code I personally used:
import bpy

bpy.ops.object.mode_set(mode='POSE')
bpy.ops.pose.select_all(action='SELECT')

drvs = bpy.context.pose_object.animation_data.drivers

for i in drvs:

    driver_var = i.driver.variables[0]

    if driver_var.type == 'SINGLE_PROP':
        if driver_var.targets[0].id_type == 'KEY':
            if driver_var.targets[0].id != bpy.data.shape_keys['Key.068']:
                driver_var.targets[0].id = bpy.data.shape_keys['Key.068']

I hope this somewhat helps any soul that may have been scouring the internet as I have been for a while! I'm just getting into learning python, so please forgive my long winded-ness, but I wanted to type this up for anyone else who might be new as well.


text:
Face mesh not attached to rig!
I followed this tutorial: https://www.youtube.com/watch?v=SBYb1YmaOMY
To rig my character. No problems until I move the rig at the end, the eyes,nose and mouth mesh on my character (a joined part to the main body) does not move!

Please help! Thanks!

Your character lookin’ kinda sus without the face, lol. I’m guessing the YouTube tutorial involved automatic weights. If I remember right, these do not work well on disconnected pieces. I recommend in this case that you manually assign the vertices of the unmoving part to the vertex group with the same name as the bone it’s supposed to move with (since it seems the face isn’t supposed to bend, this should be easy).

Go to edit mode, select all not moving vertices, go to mesh properties (green triangle with 3 dots icon), vertex group tab, select the vertex group which has the same name of your head bone, click the "Assign" button.


text:
Transparent objects not truly transparent in viewport in versions >=2.83
I've noticed that in Blender 2.83 (and newer) transparent objects in the viewport are not fully transparent in a sense that they:

Obscure particle objects inside and behind them
Wireframe of objects inside are not visible

This is how a viewport scene looks in 2.82. Notice that the sphere wireframe is fully visible.

And this is how it looks in 3.3. The particle points inside and behind the cube are not visible, and neither is the sphere's wireframe. I've also tested it with 2.83 and 3.1.2, with the same results.

I couldn't find any obvious difference in settings between 2.82 and newer. Enabling "In Front" flag of the cube object in 3.3 makes the objects inside the cube visible, however, enabling it for any other object in the scene revers the effect.

Any ideas how to fix this? Is this behavior expected or could this be a bug in >=2.83?

Sorry, I don't get what you mean. Why should the cube object be transparent? It looks like your 3D Viewport is in Solid View, there is no transparency unless you have X-Ray mode enabled, but you don't show the viewport settings in your screenshots. And since the cube is set to Display As > Textured as you can see a little below the In Front checkbox, it is absolutely normal that it obscures objects behind it.

@GordonBrinkmann Yes, the view port is in Solid View with X-Ray disabled and Show Overlays enabled. The objects can be shown as transparent in Solid View by setting the color alpha of the Viewport Display in Material Properties, see https://www.youtube.com/watch?v=0NM4LUA6WbA
It works well in 2.82.


text:
Geometry Nodes Create Dome From Grid
I have a grid of vertices constructed like this

I would like to adjust the grid so that it pops up like a dome, like this:

In normal blender, i can just grab the middle 4 vertices and move them along the Z axis. (or a different one if its rotated). How can I achieve this effect with geometry nodes?

The simplest solution for this is a radial gradient texture, which you use as offset in the node Set Position.

you could e.g. use this node setup:

or this:

Thanks! both options work great

You are welcome


text:
Extrude along normals does not do what is expected
I am following a tutorial and I am not able to do exactly what it is showing, when he extrudes the faces come out glued to each other but to me they come out individually separated with space between them.

The Extrude operator has an 'Individual'  setting. Is that checked?

Probably unlikely, but one reason could be that the faces aren't connected to each other. If you press m and then choose By Distance, they should all be connected.

Not that unlikely, especially since the edges are marked sharp.

Yes, that is the solution, thank you so much!

It's hard to help you because I don't use the language you use in your Blender, but make sure you don't confuse ✅ "Extrude Faces Along Normals" with ❌ "Extrude Individual Faces"


text:
Is it possible to create a driver for the driver modifier?
So, I created such a driver, I applied several modifiers to it and ran into a problem, I need some parameters of my modifiers to change in sync, roughly speaking I would like to create a driver for the parameters of the driver modifiers.

I need to add a drivers for a "Maximum X" and for a "Count" parameters, but blender does not give such an opportunity.

Perhaps there are some ideas or crutches how to do this?

short answer: no you can't. Proposal: tell us your endgoal. What animation do you want to achieve? I am sure there is a way, but you should help us understand what you want to do.

Does this answer your question? Is it possible write a python code in a text input? In principle it's the same problem - the field is not animatable, but you can use a driver hack (on an animatable field) or just a python script to update this field on each frame.


text:
Texture missing
I am trying to paint my 3D objects in Blender.
However, as many of you know for some people the objects automatically become purple.
When you try and paint over it they say 'missing texture'
Many people have solved this issue by 'the find missing files' option.
I tried this and it doesn't work. I have no texture option in any of my files.
Some say I misplaced it; the reality is I never touched any of the files in order to misplace/change it.
Nonetheless, I unistalled and then reinstalled blender making sure to not mess with the files.
I straight away tried colouring a 3D object but again same issue; and again textures is missing and cannot be found anywhere.
What can I do?

If you never created a texture or linked it to the material in the first place, you won’t be able to “find” it. Do you know this?

No I did not. I thought you can just paint over objects. So I need to create a texture? How do I do that?

I’ll work on getting an explanation together…

Every object in blender can have one or more materials. Materials are the definition of how faces will look in the render: Their color, how reflective they are, if they are transparent or emitting light, etc. An object technically can have no material associated with it, and Blender will default to showing the whole thing as a solid white. Each material an object uses will be in a material slot. You can add and remove material slots that will, and assign part or all of the object to each slot. An immediate advantage of assigning parts of the object to slots (rather than directly to materials as one might expect Blender to work) is that you can trade out materials in a particular slot, and all faces using that slot will switch to the new material. Sometimes, you will assign no part of a mesh directly to a slot, usually because a modifier is meant to use the material in the slot, such as the particle system modifier or the bevel modifier.
A texture is a map of information, usually colors or grayscale values, with a coordinate system that is independent of the Scene 3-D space. A common type of texture is an image texture, and a common way of mapping that image texture onto the 3-D object is UV maps. UV has nothing to do with ultraviolet in this case, and is simply a reference to the horizontal and vertical axis of the image texture. If the 3-D coordinate system wasn’t already using XYZ, we would probably use X and Y for the image coordinates instead of U and V. So, quite simply, a UV map is an “unwrapping” of the mesh into the two-dimensional image coordinate system.
Another type of texture is a procedural texture. These are textures generated from formulas by the 3-D software on the fly, and thus are infinite and can have any number of axes. You can still use UV maps to map them onto the object, but often other coordinates will do, or are desirable (such as Generated, Object, Reflection, etc).
While it is the most common case, a texture does not necessarily define an object’s color. It can define any number of properties of the material that vary over the object surface, such as roughness, emission, clearcoat, etc.
So, to set up a texture for basic coloring, you need to:

UV unwrap the mesh. Do this in the UV editing screen. You can try Smart UV project, or you can do it the old-fashioned way by selecting edges where you want the mesh to split for the unwrap, Mark as seam, then select all, and UV unwrap.
Create a new image texture to use. You can do this externally in an image editor program, or internally from the Texture Paint screen. Buttons for managing and creating new image data blocks are in the Image editor header.
Connect the new image texture to the base color of your material in the Shading screen: Add an image node, select the pulldown, and select the new image data block, then connect the Image Texture node to the shader node.
Hop back over to Texture Paint, and paint the object. Don’t forget to save the image data block either as a packed block or as an external file when you’re done.

For more information, see the Blender Manual page on the subject.
Hope this helps! SDG.


text:
How to resize part of object/ figure
I have a model of an amplifier bass/treble volume knob that I want to resize and 3D-print. It consists of a hollow cylinder and inside of it, in its center, is a socket which connects it to the amplifier.
Here's a picture of how it looks like:
https://www.thingiverse.com/thing:4721627
I wonder how I can resize the outer cylinder, without simultaneously resizing the inner socket? How can I select the outer cylinder, without simultaneously selecting the inner socket?
Thank you for any help you can offer

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

Go to edit mode, press NumPad 1 to set front orthographic view (press NumPad 5 if perspective), go to Wireframe mode (Z), press B to box select all bottom vertices.

Then Press Ctrl NumPad +   twice, to expand the selection.
Now you can press S, Shift Z, move the mouse, click to confirm (Scale uniformly except on Z axis).


text:
Clarification on process for unwrapping and sending to Substance Painter
I dont think Im stuck here, I just want someone more skilled than I am to give me some reassurance that Im heading in right direction.
The issue.
Attempting to get a BIM model from Revit into Blender, through to Substance Painter and back to a realtime rendered called D5. So far its working but not sure if IM doing it the right way.
This is my process

Ive remeshed the BIM model and cleaned up.
Unwrapped with box projection for simple shapes
Apply texel density of 1024 px/m with Texel Density Checker
Apply mapping node to make sure texture repeats across object
Pack uv islands using UVPackmaster
Send to substance painter using plugin.
Bake and set textures at 4k in substance
Sync and output to D5.

Its all working but Im still having to scale up my textures in substance painter to get detail and then also in D5 the texture appears blurry in the foreground.
Is this the right approach?

If you’re having to scale up your textures Blender with the mapping node, that means the mesh is not unwrapped properly. UV maps can extend outside UV bounds without scaling them up via nodes. Show a screenshot of the UV Editor, with the object in question selected in the 3D Viewport, and the texture in question chosen from the UV editor’s header.

Thankyou! Ive created a short video which helps explain what Im doing wrong, it might help to explain the issue and whether you can identify where Im messing up. Heres the youtube link
https://youtu.be/9uz5fb8HqmY

You do not have to “pack” the UVs all into the image bounds, and in fact you don’t want to given your desired result. The UVs of the vast majority of game models are not constrained to the image bounds and they don’t have to be. I’m not sure what the Texel addon does, but it seems like it basically sets them to not be constrained by the image bounds to give the desired scale, and then you’re turning around and undoing that with UV pack master.

Side note, Reddit is currently the Harry & JoJo of advice. There is no reason to use the remesh modifiers here, and there’s no reason to use “convert to mesh“ instead of just applying the modifiers normally if they were needed.

Thanks @TheLabCat Appreciated.
I think I am needing to pack the islands into the image bounds as without this when I bake maps in substance, some of them dont back to the UV correctly.
The Texel addon simply helps me manage the Texel Density across mutliple objects, thats all Im using it for which seems to work OK.
Thanks for the suggestion on not having to remesh, Ive done that now and it maps OK still so thats saved a step.
I think its best if I set the uvimage to 4K, set the maximum texel density I can reasonably achieve and then tile in substance if its needed. Thankyou!

Ohh, baking... Yeah, that does require the maps to all be within the image bounds. Hmm. You could use two UV maps on the same mesh, but IDK if your overall work flow could support that.


text:
Need help with modelling a peculiar window sill
I want to (re) create a peculiar type of window sill I saw in an old 1999 game.
I dont have much experience with blender.
Any help would be appreciated, I also attached a picture of my current mesh geometry (vertices,edges,faces)
Geometrically the object is the 1/4 of a sphere or some kind of ellipsoid. My first idea was to create this geometry and attach both objects with help of some Boolean Operator. I find this to be a brute forced solution and dont like it much...Is there some better more natural solution to this problem? Any ideas?

No i think joining them with a boolean mod and then cleaning them up is the most straightforward option. I would only say maybe make sure the geometry density is consistent between the two objects to make it as clean as possible (like don't use a 32 sided sphere booleaned into the side of a 32 sided cylinder that's 5x as big. make sure the spacing between the rings on each component approximately match eachother in world space.)

But also don't always feel like you have to join every object and model 100% watertight at all times. If you can just "set" a half sphere on the front of this cylinder shape and have it look decent then that totally works. Like houses in general aren't carved out of one solid block of clay, they're usually made up of small parts joined together. Try to think of the way you construct buildings this way and it will not only be easier for you but often look more natural as well.

This is just 3d modelling in general. There are hundreds of ways to model a shape like that. The real answer is that you need to watch some tutorials, get familiar with the modelling tools available and then practice. At this moment you lack familiarity with the tools available, mainly all the stuff in these menus in Edit mode:

Learning them would answer lots of questions.
In this particular case modelling that particular form could go something like this:
Duplicate some edges( Shift  +  D ) and fill them with a face( F ), or duplicate a face below the window and slide one edge( Shif  +  V ,  C  locks direction so you can extend outwards while in operation) to make a single face below the window that matches the slope of the wall. Don't move it, or move it inwards to the wall a bit so you don't have to worry about wall curvature not matching it. If it's going to be stylized cartoon style, you really don't need to worry about it being single connected mesh or anything like that.

Extrude it( E ), but constrain the movement axis to global Y by hitting  Y  while moving it:

Flatten the face in Y axis by scaling( S ) it in Y axis( Y  in scale operation) to 0(hit  0  on the numpad while in scale operation). You can move it a bit further so there is definitely enough space for bevels that is the next step. It's OK to move the whole thing back later:

Select the lower edges:

Bevel them( Ctrl  +  B ), adjust segments with scroll wheel:

You can adjust the result by moving vertices or scaling it

Fantastic answer! Thank you very much for your time.

@Prutsikas Hello and welcome. This site is not a regular forum.  Please don't just reply "Thanks" as an answer or comment, instead upvote the post that helped you. If you feel it completely solved your issue consider marking it as accepted.


text:
Boolean Problems on Curved Surface
Hello Blender specialists!
ISSUE1
I am facing some problems with the Boolean Modifier (Difference) on a surface. I want to create an opening but I am getting the issue that the inner faces are not getting generated. I have tried both solvers (fast and exact) and only the fast gives me these results. With the exact solver NOTHING is happening. Moreover the mesh result after the operation is not looking really good and creating the faces manually would be very time consuming...
How I created this geometry? Well I just took the outer semi cycle section (only faces) and applied a 90 Degree Screw Modifier. I then extruded the lowest faces along Z and created the final shape. Creating an Opening at the non curved surface was not a problem, there everything functioned correctly! What can I do here?
ISSUE 2
I tried recreating the shape by applying the screw modifier at the outer edges only. This step was successful. The I tried applying the solidify modifier at this curved surface and I get some really crazy results. What is the method to give EVEN thickness to a surface like this? How can I use the EXTRUDE operation to perform this task?? Thank you!

You have internal edges, I mean edges that are inside the volume where they shouldn't. All the edges connecting the 2 surfaces should be deleted (with the exception of edges that are on the surface). More generally, boolean modifier expect a manifold geometry. Non-manifold geometries don't guarantee a correct result. Read more here https://blender.stackexchange.com/questions/7910/what-is-non-manifold-geometry


text:
Flip Fluid add on : Fluid sim freeze while rendering
I baked my fluid simulation, and rendered. But every 15~20 frames the sim froze.
So I closed the Blender file, reload it again and render from the keyframe which was frozen. I think it's the directory(cache) problem?
https://blenderartists.org/t/fluid-sim-freezes/435355/8
This is another post with the same issue in 2008. I cannot believe it hasn't been fixed yet.. anyone has the same issue?

That's a third-party addon so it might be worth looking at their FAQ page and putting in a support request assuming it's the paid-for version..

This type of issue can be caused by a known issue in Blender that can result in static renders, incorrect renders, and crashes when rendering a FLIP Fluids addon simulation.
The solution is to render from the command line which ensures a correct and stable render. The FLIP Fluids addon contains a sidebar operator for automatically setting up and launching a command line render here:

More information can be found in the FLIP Fluids addon documentation here: Why render from the command line?

Why render from the command line?
There can be render instabilities in Blender that may cause crashes,
result in incorrect renders, or result in whitewater particles not
rendering when rendering FLIP Fluids addon simulations. This is caused
by a design issue in Blender where the viewport and render threads do
not sync correctly and can cause a crash (Issue T60094 and Issue
T88811). This becomes more troublesome as amount of geometry
increases. This issue is the reason why the viewport needs to be
locked during render to improve stability. Rendering from the command
line will bypass this design issue since the viewport is no longer
needed.
Unfortunately this issue is outside of our control and will need to be
fixed by the Blender developers. There is a comment here in the issue
thread where a Blender developer mentions the design issues will need
to be handled in regular development:

From Sergey: Currently it's as stable as we can make it. It is indeed
true that interface is better be locked, otherwise render thread might
cause conflicts with the viewport (due to python handlers possibly
modifying data while it's being drawn by the viewport). There are ways
around it, but needs some design changes. Will be handled outside of
the bug tracker as a regular development.

This issue can be highly dependent on the system. Some artists will
experience this issue frequently while others may never experience
this issue. Due to this issue, we highly recommend becoming familiar
with the command line rendering tools.

Another cause of this issue can be from other addons. If this issue persists after a command line render, try disabling other addons to narrow down the source of the issue.


text:
Blender Geometry Nodes - Stitch test Problem
While there is no problem on the horizontal path while trying to sew in the blender geometry nodes, but there is a problem on the vertical path.

You should also align the $Z$ axis to the curve normal using the previously aligned axis as pivot:

With this, you just need to adjust the tilt of the curve's points:

thank you very much :)


text:
Rendering as a Small White Screen
So I'm following the classic donut tutorial and I'm stuck on the rendering phase. I've moved my camera around, I've moved the lighting, my scaling is a 1, everything is there. I have no clue why this won't render. Before I messed with the camera, it was a very small pixelate donut bc the camera was too far away.
Any tips? I've been googling and took a break and still can't get it.

if you type '0' in the 3D Viewport, do you see the donut centered in the framed area.  Looks like it should be but camera may be pointing to one side the donut.

You might also decrease your, "Clip Start," clipping distance on your camera, as it might be culling the front of the doughnut that is near the camera origin.

How small is your donut? It looks tiny - like 1/10 the size of the camera - maybe scale both the icing and the donut up by 10 or so (applying scale afterwards, of course). After this, you can center the camera on the donut and set its position by pressing Ctrl+Alt+Numpad0.


text:
Smooth shading getting flat when normals applied
im relatively new to 3D modeling, i watched quite some tutorials and started modeling some stuff, but im having a problem and cant find anything to help me solve it. To the problem then. So im modeling a table and got the textures done on Substance painter, then in blender everything is fine until i put in the normal map, i mean i dont even have to put anything, as soon as i connect the image texture (and yes, its on non color data) to the normal map node the smooth shading on the bevels of the table dissapears and it gets flat and ugly. Im using version 2.79 because im creating custom content for the Sims 4 and gotta use that version.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

Add screenshots


text:
How do you do an intrude instead of extrude?

Lets say I want to decrease the height of the back of the chair, or all of its legs, how is the easier way to do it? I mean without cutting each of them into two pieces and deleting the remaining parts.
If I choose all the bottom faces of the legs, press E , and then drag up, it will create hollow spaces. Same thing probably applied for the back of the chair.

https://blender.stackexchange.com/questions/51729/what-is-the-fastest-way-to-do-a-cut-extrude-inward-extrude https://blender.stackexchange.com/questions/50780/how-to-extrude-inwards-without-leaving-faces https://blender.stackexchange.com/questions/8639/intrude-faces-instead-of-extruding

it's not clear what you mean by intrude, could you please show what you mean with a second picture? There's a new tool called Extrude Manifold (Alt E) but I'm not sure it's what you're looking for

@moonboots if its not clear then read the entirety of the post, if its not clear by second picture then read the whole thing

I thought you wanted something else than just move down the faces, "intrude" sounds like the opposite of "extrude", and in Blender extrude is this particular operation than you get pressing E, there's no "intrusion" per se, except lately with alt E > Extrude Manifold, but I was not sure this is what you wanted and actually it was not  ;)

The answer is to simply just grab all the faces on the bottom of the chair, press G to grab them, and press Z afterwards to pull the faces only vertically. This isn't intruding, but just moving faces. Simply put, drag the faces up without pressing E, in the case of the chair legs. I hope this answers your question!
On another note...
if you press I, then inset faces, and then extrude, moving up into the mesh, it will create a hollow space with depth, rather than just 4 faces with no cap. This second response probably doesn't answer your question, but this is probably what 'Intrude' means in Blender.

sorry, it doesnt work in this version of my chair https://i.imgur.com/gV1I6f8.png  In this, using G + Z  creates hollow spaces like with E.

You have already extruded, meaning that there are new vertices that are being grabbed. Grab the face, press 'x' and click on 'delete faces'. Depending on how many times you extruded, you need to repeat this process until there isn't a face on the bottom of the chair. then grab the edges around the bottom of the chair, and press 'F' to fill. This will make a new face, and grab that face and move it

Sorry I dont really understand here. And you probably mixed up "select" with "grab" there in your comment

Maybe what you are searching is Extrude Manifold. You can activate it with Shift+Space, then Shift+4. Or just click and hold over the extrude icon and select Extrude Manifold.
When you have a face that is surrounded like this, it basically does Inset + Extrude.

When it doesn't have an adjacent face it does this:


text:
Particle system to create texture
I've made a forest scene with Botaniq add-on with lots of grass and trees which means lots of particles. Obviously slows everything down massively.
Is there a way to "freeze" layers or manage the layers so that I can add extra things.
For example I want to add a fire but I'm pretty sure the combination would actually set my computer on fire.
Basically, what is the best ways to deal with multiple particle systems?

If you mean slowdown in a Viewport you can disable ps from Viewport visibility or in object properties set Viewport visibility as Bounding box.

Hi if by freeze layer you mean can you freeze the particles in their current place and stop them from further emitting, then yes.
You can select the particle system
under the modifier tab,
you have the option to convert the particles to a static mesh.

If user already noticed slowdown .... Converting particle system to real geometry will be killing ....

I'll try both of these thanks. I guess what I was really asking is what techniques are there to deal with massive  scenes? Could be particles, physics, animation or just sheer number of vertices that all add up to make working on a scene very laggy.


text:
Vertices of an object rotate on different axis
I recently downloaded a bitcoin model from cgtrader.
The problem being that the vertices of this model seem to have several different origins, so if I rotate the object in edit mode, the object doesn't keep its initial shape...
Do you know what to do in this case ?

set transform pivot point to median

Thank you for your answer I will try this !

It works !! TY !!


text:
How to have Blender to use the Python wheel that I provide in my extension?
How to have Blender to use the Python wheel that I provide in my extension?
The docs suggest that I can bundle all the dependencies of my extension inside the extension itself here.
I tried downloading the opencv-python-headless using pip download opencv-python-headless and it downloads all the dependencies of opencv as well which is numpy 2.1.3, I added these .whl files in a folder called wheels and added them to the manifest file, in my script I check for the version of these modules to make sure they work, like this:

import numpy as np
import cv2 as cv

def check_modules(self, context):
    try:
        message = f"NumPy : {np.__version__} \n OpenCV : {cv.__version__}"
    except ImportError:
        message = "3rd-party modules not found"

    self.report({'INFO'}, message)

and it is using the numpy that is bundle with Blender, I'm using Blender 4.2.0 and Numpy version is 1.24.3.
I was wondering, is there a way I can have this version of Numpy for just my extension while Blender uses it's own version of Numpy? or maybe if my extension can change the Blender's Numpy version?
Is there any way I can use the numpy version that works with the opencv version that I'm working with?

Oh no, not dependency paradox . Good luck, dev!


text:
About obj files to export with textures
How to import a wavefront obj file with textures without having the mtl files as I have downloaded a model but it does not contains the mtl files it have only the textures and obj.

create a valid text mtl file by looking at examples.

This is actually very simple, since OBJ files carry their own UV maps. After importing the model, create materials for it like you normally would if you had made the model in Blender and already created the UV map, then import your textures into the materials manually with Image Texture nodes.


text:
Rendering in Black and white
I'm doing some basic renders in version 2.9 and they are appearing in black and white after render, but in the render view while editing, they look fine.

can you please provide a screenshot of your rendered image with header?

Hello and Welcome, please add more than just the Blend file, like Screenshots of your settings, shaders, lights, descriptions of your scene and so.. The more info you add, the better for the users to help you

You need to pack the PBR textures into the blend file if you want us to see how the scene actually looks.

While files, images, and external links may be helpful additions to questions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be searched for and indexed thus helping future users with similar issues find it.

It works well on my computer. Maybe you messed something in the "Display Channels" menu ? It should be set to "Color and Alpha".

Nope, still black and white :(


text:
How to automatically make Blender choose random colors for your render

I want to make this render but don't know which color to use for the logo. How to make Blender render with random colors for me to then check and use the best one.

While there's no way to have blender check and choose the best color for you, as that is quite subjective, it is possible to set the color to change every frame and to render an animation of those multiple different colored frames.
To do so, first head over to your material tab, and select the shader currently applied to your text object. Now press Shift+A and create a color ramp node, and a value node. Then plug the Value into the Fac of the color ramp. Then plug the color into your principled BSDF or wherever you need it to be. Then go to the first frame of your timeline, put your mouse over the value nodes number, and press I to keyframe it. Go to a different frame in your timeline set the value of the node to 1 and then press I on it again. Now when you play your animation the value node will change from 0 to 1 and control the color ramps output color.
Now just input the colors you want into your color ramp, go to the render tab, turn down the output resolution, and turn on render regions and make them scaled down to just cover the relevant parts of the scene. Render an image sequence to a folder, and then you can go through and see a ton of different color options to use.


text:
Is there a way to create a dynamic paint object/brush that absorbs wave motion rather than reflect it?
Within dynamic paint, let's say there was a wave incident on an object (a wall created by a mesh cube, for example), but rather than reflect the wave, you would like it to absorb (completely damp) that energy as the animation continues. Is there a brush (or other) option for this object that would allow for this? This wall may have holes, etc..., so I can't simply open the borders and leave this wall as the edge of the field. Thank you!


text:
Charmorph for Blender
New to Blender and want to use Charmorph. I've had a look at youtube and found a tutorial. However, it doesn't correspond to what I have in Blender 3.2.0. I also cannot find any of the sliders to morph the character. When I finalize, the youtuber showed that it created a rig (like rigify. not sure what that is) but it doesn't look anything like it. Is the latest Blender incompatible with Charmorph as it stands? Am I being a bit thick?

Since that's a 3rd-party addon, not part of Blender, it's best to ask the author directly. The only video I could see about it is for Blender version 2.83 whcih is a couple of years out of date now.

Good thought. Thanks, John.


text:
how to make a path move along a path
Basically, I want to move sinusoid along a 3d path. It has to move with the start of the sinusoid staying in one position, basically like a vibrating string.
I could mask both ends and loop the animation, but if there is an easier option I'm happy to hear about it

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

please show some pictures of what you're trying to achieve


text:
Object Mode Vertex Snapping is not working as intended

Instead of snapping the two triangles together it offsets it like this, how do I fix this? I am hovering to the closest vertex which is the bottom one and it keeps off setting the position rather than putting the two points together.
Blender 2.8

Hello and Welcome. Would you like sharing a screenshot of your snapping settings? Thanks.


text:
How to join a cube to a cylinder
I want to join a cube to a cylinder, or more accurately, i have extruded a section of the cylinder to make a rectangular part.

I now want to replace all the sharp edges with bevels, but i'm having problems with the corner where the cube and sphere merge.

How can i archieve bevels that dont clip into each other here?
Since i am modelling from a reference, i can't really make away with the corner as it's also present in the real counterpart.

Maybe try this topology:

Rounder bevel:

This does look promising, but i would like an actual bevel in there

this is a kind of bevel, except the edges are pretty close so it tends to sharpen the edges, do you mean you want it less sharp? In that case you just need to push the edges away from each others


text:
Connected vertices cause problem with bevel
I am having issues because my object is connected to other vertices so when I try to bevel edges I get messed up bevel:
Here are edges that connected vertecies:

Now when I try to bevel edges of my object:

Is there some way to fix this? Here is link to download my blend file: https://wetransfer.com/downloads/6be8543fe48815e3127a7e3622af155020230130211637/7904df

If you enable Face Orientation you'll see that part of that ring has inverted normals (coloured red). Select All in Edit mode and then Shift-N to recalculate the normals. You'll then find that bevelling works correctly.


text:
How to subdividing curves
I am trying to model apple magic mouse in Blender so in order to create those curves I used "Bezier curve", so in the end when I finished modeling and convert it to mesh I got this:

But when I try to use subdivide modifier it I get:

Is there some way to fix this, or this is just how subdivide works with curves?

If editing the curves before they are converted to mesh is no longer an option, e.g. you lost the curve data, then I suggest removing all mentions of curves from the question - after all there no longer are any curves there. What you're doing is subdividing a mesh. I think you need to watch some beginner Blender tutorials to see the proper workflow with subdivision surface modifier. The "topology" (not just the visual shape of your mesh, but how it is defined with edges) greatly affects the result of modifiers (be it bevel, deform, subdivision surface and more).

@MarkusvonBroady Tnx for the help

I'm not seeing a curve but a mesh. To have a good result with your Subdivision Surface modifier you need to have a better topology, i.e avoid ngons and create quads instead, here are the edge loops that you could keep (use the Knife tool for example), remove all the other ones (CtrlX to dissolve the edges):


text:
Cannot Simulate Liquid/Fire/Smoke, and I have tried seemingly everything
I cannot get any smoke/fire/liquid to simulate.
Current Version is 2.90
At this point I am almost willing to pay someone to fix this problem because I have tried everything, from following tutorials step by step, as well as searching on sites like these and no fixes at all for me.
I even tried completely deleting and redownloading/installing blender and this also did not work. I have tried both evee and cycles
Could someone possibly provide me a simple file that I can open and try to see if that works? Is there any specific settings, or preferences or addons that I might be missing?
I appreciate any/all help you can provide.
Thank you.

Hello :). How far have you got so far and what tutorials have you followed?

I have tried at least 15 or more tutorials for smoke and liquid, and I have not been able to get either to work at all, ever. I even try to find the most recent tutorial, hoping I'll find a little trick for a newer version but still nothing.


text:
Merge by Distance Context Menu Truncated, not showing manually enterable distance field
The context menu that pops up when Merge by Distance is chosen is truncated so I can't manually enter a desired distance. Does anyone have any suggestions of how to fix that so it shows completely? Thanks

I've noticed that if I open a file with another Blender version than the one that was used to create the file, so maybe append the objects in a brand new file?

Ok, I downloaded the latest Blender 4.1 and that fixed my problem. Thanks for your response though


text:
Measurement tool incorrect against ruler in image by VARYING amounts
I'm writing asking for a little help.
I used an image as a template plane underneath my 3D design. Things were going well but then I realized there was a strange phenomenon with measurements. The picture here is taken from the top. The view in Blender 2.8  is taken from the top. The measurement tool is overlaid on the image. The image happens to have a metric ruler in it.
Notice carefully that for shorter distances, the measurement tool is in error by a larger amount. The measurement tool is in error by a smaller amount for longer distances:
For 40mm on the ruler, the measurement tool reads 34.96mm
For 50mm on the ruler, the measurement tool reads 44.52mm
For 100mm on the ruler, the measurement tool reads 92.3mm
For 170mm on the ruler, the measurement tool reads 163.2mm
For 280mm on the ruler, the measurement tool reads 290.2mm
The difference at 40mm is ~5mm (12% difference). The difference at 100mm is ~ 7.7 (7.7% difference). The difference at 170mm is ~7mm (4.1% difference). Amazingly, at 280mm, the difference is 0.8!
I used proportional scaling on the image. If I make it bigger or smaller, this strange result remains. If I measure it from the bottom of the ruler, the results are the same. This doesn't seem to be related to the Apply Scale when in Object mode problem. There is no modifier applied.
Bottomline: My 3d project is 280mm. That distance is correct but the smaller internal details are all wrong by varying amounts. I've tried to rescale one part but then another part is wrong. If someone could please help me, I'd really appreciate it.
Thanks,
Dennis

camera lens distortion is a potential main cause as a 100% flat image is not possible using lenses.

Agree with Dave. For a better test scenario, you would have to un-distort the image accurately in the first place: https://blender.stackexchange.com/questions/15620/how-to-determine-lens-undistortion-values-for-motion-tracking

Using a photograph of a ruler is an excercise in futility. Besides the lens radial and tangential distortion, perspective will influence the measurements. If the sensor of the camera was not perfectly parallel to the ruler the distances will never be linear.

The photo has barrel distortion, so the ruler scale isn't linear. Hence the inconsistencies.
Still, you can align it to the grid.

Adjust transparency for the image, to see the grid underneath
Move the 3D cursor to 0mm markings and set it as Pivot Point (using the overlay menu)
Scale the image until the 170mm markings match the grid

(The gif starts with the ruler perfectly aligned)

Thanks so much Jachym! That solved my problem. I truly appreciate you taking the time to make the video which explained it very clearly. Dennis

Glad to be of help :). Good luck with your project.

You can also scan the ruler on a flatbed scanner instead of a photo so the source image is flat without any lens or angle distortions.


text:
How to move vertices on surface height
I beveled some edges and then moved a set of vertices with the help of the scale command to the inside of the structure to creat a certain kind of effect. Is there a way to bring the vertices to their original place again. Using scale doesnt work correct for some reason...Thank you in advance!

You could select this edge loop in the middle and just dissolve it with ctrl+X
Then add it again if you need it

the problem is that I wanted all the edge loops to be adjusted. This is too time consuming.

I found a solution that worked well for this case. I went into Edit Mode, selected all the vertices of the surface via the X-Ray tool and then used the Smooth Tool.


text:
IK Leg is either rotated wrongly or bends wrongly
I have a model, but when I tried to put Inverse Kinematics, the leg will either bend backwards, or the leg will be rotated wrongly. I've tried to rotate bones, rotate Pole Angle, move the Pole Target... But whatever I do, the problem always stays the same. Is there any way to fix this?

In Edit mode, bend the knee a bit forwards so that Blender knows in what direction it is supposed to bend, then in Pose mode correct its Pole Angle if necessary:


text:
Is it still not possible to access or copy data from the geometry nodes spreadsheet?
I've seen this question asked many times, and I've seen reference to a patch that would have enabled this functionality, but it was 3 years ago. I can't seem to find anything more on it.

Hello and welcome! Your question looks a lot like a duplicate. But it depends on what exactly you mean by “access or copy data”. I'm guessing you want to do an export. So yes and no, it is partially possible under certain circumstances. Here are the relevant questions/answers: https://blender.stackexchange.com/questions/293496/ & https://blender.stackexchange.com/questions/235465/

Yeah, I've seen both of those (though the second one isn't much of an answer if the csv patch isn't live yet). The first doesn't totally work for my circumstances. Thanks though!

Could you develop why "The first doesn't totally work for my circumstances" ?


text:
Flowify add on with 3D scan file
I am new to blender but recently gave it a try after coming across a tutorial for the flowify add on and thought it may solve a problem I have had for a while now.
Basically, I want to make a 3d stencil from a 3d scan to be used for painting.
I have imported the .obj scan file into blender but when I try to 'create source grid from target surface', I get an error stating 'this is not a valid grid shaped target surface'
The .obj file will be the target surface.
Is there any way I can make this work? Hope it makes sense.
Any help is appreciated.

It might be helpful to people trying to help you if you uploaded an example blend file to the site https://blend-exchange.com and add that link in the question.

There appears to be a YT video for that third-party addon here which tells you where to obtain help if you need it.


text:
How to bake Displacement's Height and Scale?
There was this shader that I have been trying to bake the displacement map and see if it's gonna work out but all it's doing is baking the displacement "Height" only. The reason why I am trying to bake this is because if it is not baked then the outcome will look like this:

I am trying to make this look like this: (which is what it looks like when rendered)

This is what happens when I try to bake its displacement: (I used a displacement modifier)

Now I believed that all its baking is the Height of the Displacement and it's not considering the Scale of it. The result is similar to when I bake it when tried removing it.

I'm not sure what your baking setup is but you can very clearly see that those aren't even close to the same image. It looks like the object you were baking from is way displaced from the surface of your low poly object. The whole image is almost 100% white. I would recommend trying to rebake with the "low poly object" somewhere halfway between the lowest parts of the displacement and highest parts.

I cannot clearly see your node setup because it's too small and parts are outside the scrennshot, I also don't know how you're baking the texture. The only thing I immediately realize is that there is a Mix RGB node set to Add with Clamp disabled. Clamping limits the RGB values to the 0 to 1 range. Adding, subtracting, multiplying, dividing colors without clamping can produce values above 1 or below 0. If you then bake the texture to a PNG or JPG file, all the values outside the 0 to 1 range will then be lost. So baking these values would require a file format like EXR for example.


text:
How to revert liquid to it's original state

I applied fluid physics to this mesh, then decided to take them off, I delete/disabled them, however the mesh now has invisible faces and I can't figure out how to make them visible again.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

I you add fluid domain, it often switches the viewport shading to Wireframe mode.   Also, did you delete the Fluid Domain object?  FD object adds a mesh (that is in wireframe mode) that will also have surface Material added.


text:
I want to build a racetrack/waterslide with differently sized tracks/slides
I want to build a racetrack/waterslide with variating track/slide sizes. The cross-section of the track/slide should be always the same, only that the part between them should be variable.
This is the top view of the track/slide. As you can see there even should be other "intersections".

This is its cross-section

As you can see here, I already managed to get my track/slide along a path.

This should demonstrate how the track/slide should have more space to the right side
It's important that the track's/slide's walls should always be the same size. Only the area in between them should variate.
I don't know how to do so.
I could align the walls (left and right) along 2 splines marking the walls of the track, but just filling the gap between the faces will destroy the smooth surface?
Here is the example of what I was able to generate.
This was done by creating a left and a right wall along 2 curves and a filled middle section with another closed curves area. But as you can see, the distance between the "walls" is uneven at the normal sections, the middle part isn't smooth and changing the paths direction (hight) doesn't look good at all.
Thank you very much for your help.
Greetings


text:
Confused by Value to String node
Why do I get a red line from the Separate XYZ node to the Value to String node?

I'm trying to break the vector down into it's component parts, and examine the X component. At least, that's what I'm trying to do. I'm obviously doing something very, very stupid, but  quite what eludes me.

broken lines are more than 1 value. so you can't connect multiple values to a slot that accepts only 1 value.

Thanks, but that's exactly what's puzzling me. I think I'm taking a vector, and breaking it down into it's component X, Y, and Z parts. But it's not allowing me to peek at what X is. When I siphon the X value off and use it in the Greater Than test, it works - I can vary what gets extruded based on the X value. I just can't feed it to the Value to String node.

A diamond shaped socket outputs a Field, which is basically a function that operates on an input.
The used Position node outputs a field which represents the positions of every element requested by the next node.
That mean it does not output a single value, like $3$ or $4.7$ because in the illustrated case it is producing an array of values for the positions of the vertex in the Grid node.
The Value to String node on the other hand can only receive a single value to convert to a single string.

Ah, OK, I see. I need to review my mental map of how it works under the hood. Many thanks.


text:
how to add a volume cube
I can't seem to add a volume cube in blender 3.2.2. I don't understand cause I am new but I saw a video called blender getting crazy at 0120 he added a volume cube in geometry nodes but that option doesn't even come up for me.

The Volume Cube node is a new node that comes with Blender 3.3 (https://wiki.blender.org/wiki/Reference/Release_Notes/3.3/Nodes_Physics - scroll down). Blender 3.3 is at the moment still a beta version. The official release is next month.

Damm, I am really amazed at how fast u answered me thank you. I tried searching everywhere.


text:
System particles orientation target
I need a crowd looking at one target. If i move the target the people change the orientation looking for the target, just the orientation ( i need that the people stay). In tryng with particles obviously, but i can not find where i should put the target. Thank you in advance.

Hi! Welcome. Does it work if you put the target on the object you're using for your particles? So if you've got Object A emitting particles of Object B, then go to your (real) Object B and put the target on there?

Thank you Guys! your comments have been very helpful.
I got it without knowing how, hahaha.
now it's ok, but for the future, you know some link about particles and their orientation,etc explained deeply?
Thanks again!Gassss

You can create a Force Field > Force (here its Strength is 3) and for the particle system, enable the Advanced option and then enable Rotation > Orientation Axis > Velocity / Hair:

Good one Moonboots!  A handy one for future reference.


text:
How do I identify physical size of Procedural textures?
is there a way I can find out how much space a Procedural texture takes up on disk when it is applied/not applied to an object?
Thank you,

Are you sure that a procedural texture takes any space on disk ?
The texture is computed on cpu and sent to GPU, space taken here will depend on the screen resolution since it's vectorial (that's just my guess)

To quote Wikipedia here: "In computer graphics, a procedural texture is a texture created using a mathematical description (i.e. an algorithm) rather than directly stored data." So as @Yvain already stated, it hardly takes any space on disk. Of course while rendering the data of the generated texture has to be stored somewhere temporarily and complex textures (might) cost a lot of memory, but if you mean disk space when saving the file it's negligible, it is like e.g. the RGB node, it only stores the information about the node and its settings, but not the complex generated texture.

Sure - render the thing with the texture and then render the thing without the texture and then compare the memory used during rendering.

When I do this with a fairly complex procedural wood texture my render uses 5.19MB in memory and without the texture it's 5.17MB so the amount of memory used is really negligible. Render times on the other hand, may go up quite a bit if you have a lot of complex procedural textures.
Same way one can save the file with the texture and without it to compare the file size:

I get a difference of 131KB and that looks believable  for something like this

The question is "how much space a Procedural texture takes up on disk". The way it is phrased doesn't seem like asking for the (temporary) memory usage during rendering.

Oh, then one can save the file with it and then without it same way. The amount will still be very small.

Very nice wood! I'd nick that if I could see it :D

Yeah, the wood material is nice... but unfortunately a secret I guess ;) Anyway, I think the most storage consumption of a procedural texture in the file is the amount of nodes and their settings which most of the time isn't too much. At least not compared to high quality image texures.


text:
How to project a grid onto a circle/torus using geometry nodes?
Using this geometry nodes graph, I've created a grid of a simple "tile" mesh.

I want to project this grid onto (or restrict this grid to) the surface of another mesh (the parent of these nodes), in this case a 2d torus. A solution for a circle would work too.

I can't quite figure out how to reconcile the "points" output by the Instance on Points node with the geometry of the torus. Is there a node I can use? Is there a better approach altogether? Thanks in advance for any help!

I don't quite understand your question. Do you mean something like this: https://i.sstatic.net/YWRKP.png ....or something like this: https://i.sstatic.net/gR0S2.png

I'll just assume you want to get this result:

This is where the Raycast node comes in handy.
With the help of this node you send a "ray" from a certain point in a certain direction. If this ray hits an obstacle, a Hit is returned.
With the help of this value you can now selectively delete the geometry from which the raycast was sent:

Thank you very much! Raycast was the ingredient I was missing. And yes, this is exactly the shape I was going for.
One slight difference is that I'd like to use a custom mesh (named "tile" in the screenshot) instead of the geometry generated by the Grid node. So my final solution with the addition of the Raycast node looks like this, for anyone curious: https://i.sstatic.net/fmMXx.png


text:
How to make a template
im a absolute beginner using blender and hope someone can help me.
I work as a prosthetist and wanted to create a template for some foam which i have to glue into a orthesis.
i do have a stl of the orthesis but it has over 300k polygones which is to high to use the unwrap feature.
is there a quick and easy way to get the shape of the orthesis as a simple cutout?
if someone could help me it would be awsome for me and my patient as well.
best wishes
timo

You probably want to look into the boolean modifier.

Hello and welcome. As it stands this question is unanswerable and may be put on hold for lack of essential details to understand the issue. Obviously only you have access to your scene, so unless you describe it thoroughly you alone know your exact setup, settings and what steps you took to arrive where your are now. Describe in detail what the issue is, supported by reference images with the [edit] button above. Don't post comments or ask a new question, editing will automatically queue it for review.

https://blender.stackexchange.com/questions/77279/projection-geometry-example/77281#77281


text:
Reflection problem
Guys I'm using blender so I want to create a mirror in it. I was turn on the screen space reflection in both render tab and material tab and reflection plane is also fit to plane object and also used both glossy and principled bsdf with roughness 0 and blend mode is also opaque. Every thing is correct but I didn't get the reflection can any one help me with it. And the main thing is at first I'm  success to create a mirror but now it's failing

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. Try posting screenshots, gifs of your problems or you can share your .blend file.

maybe this answer will help: https://blender.stackexchange.com/questions/190642/how-do-i-get-proper-reflections-eevee


text:
How to render ( y - x + 1 - ( (y-x+1)^2 -4y )^(1/2) ) / (2) in Blender?
I need to render:
$$z = \left( y - x + 1 - \left[\left(y-x+1\right)^2 -4y\,\right]^\left(\frac{1}{2}\right) \right) \div 2$$
as a 3d function in Blender to make a visual using domain $$0<=x<=1$$
$$0<=y<=1$$
The software reports an error when I type **$(1/2)$ to add the square root part.

**(1/2) should work. are you using a text editor? and btw you're equation is missing a right side. is this equal to zero? equation = 0? you're equation looks like of implicit type so you cannot use it directly in blender, you need to transform it to something similar as in this thread https://blender.stackexchange.com/questions/270409/how-can-i-plot-this-cartesian-equation-in-geometry-nodes

Where 4*y  >  (y-x+1)**2, you are asking for the square root of a negative number .. you would have to work out your own representation of Complex, 'Math Function' deals only with reals. Or restrict your domain.

@arsh oh or do you mean the form $z = z(x,y)$? so it is explicit and should be plotable, at least the real part of the equation.

Did you use **(1/2) for the square root but ^2 for the square part? That's not clear in your question. It's just that ^ doesn't work.

Thank you. How do I restrict the domain for both x and y? I want to domain to be 0 <= x <= 1 and 0 <= y <= 1

updated my answer to include restriction to domain $0 <= x <= 1$ and $0 <= y <= 1$ at the bottom of my answer. I'm not sure if it is possible with Z Math Surface so I asked this question and also not sure if it's possible with geometry nodes. Let's see what Crantisz comes up with :)

@HarryMcKenzie It's not directly possible with Z Math Surface, although you could change the domain in a way to avoid the imaginary solutions and make it work.  Rather than doing that I explained a way to do it with XYZ Math surface. See my answer there.

You can easily plot the points using a python script. This script iterates through a list of $x$ & $y$ values from $-70$ to $70$ where as @Robin Betts has pointed out $4y > (y-x+1)^2$ are imaginary values and cannot be plotted. So this script ignores negative values where the term $4y$ is greater than the term $(y-x+1)^2$ and only plots the real points.
import bpy

def get_object(name):
    objects = bpy.context.scene.objects
    if name in objects:
        return objects[name]
    m = bpy.data.meshes.new(name + "-mesh")
    o = bpy.data.objects.new(name, m)
    #o.modifiers.new(name, 'SKIN')
    bpy.context.collection.objects.link(o)
    return o

# ==================================================================================================
# Equation:
# Descritpion: plot the graph ( y - x + 1 - ( (y-x+1)^2 -4y )^(1/2) ) / (2)
# ==================================================================================================

def get_range(start, end, step = 2):
    return [x * 0.1 for x in range(start * 10, end * 10, step)]

def get_graph_z_real(x, y):
    return (y - x + 1)**2 - 4*y

def get_graph_z(x, y, real):
    return ( y - x + 1 - ( real )**(1/2) ) / (2)

def draw_graph():
    verts = []

    for py in range(-70, 70):
        for px in range(-70, 70):
            real = get_graph_z_real(px, py)
            if real < 0:
                continue
            pz = get_graph_z(px, py, real)
            verts.append([px, py, pz])

    o = get_object("graph")
    m = o.data
    m.clear_geometry()
    m.from_pydata(verts, (), ())

draw_graph()

Or you can use the Z Math Surface under object menu Add > Math Function > Z Math Surface

But since you have that imaginary part you cannot directly use the equation $(y-x+1-((y-x+1)^2-4y)^{1/2} )/(2)$ but instead need to use a condition to filter out the imaginary part. The best you can do is probably set the term $(y-x+1)^2-4y$ to zero if $4y$ is greater than $(y-x+1)^2$ like so (or experiment with other non-imaginary values):
(y-x+1-((y-x+1)**2 -4*y if 4*y < (y-x+1)**2 else 0 )**(1/2) ) / (2)

Another sample to restrict the domain to $0 <= x <= 1$ & $0 <= y <= 1$
import bpy

def get_object(name):
    objects = bpy.context.scene.objects
    if name in objects:
        return objects[name]
    m = bpy.data.meshes.new(name + "-mesh")
    o = bpy.data.objects.new(name, m)
    #o.modifiers.new(name, 'SKIN')
    bpy.context.collection.objects.link(o)
    return o

# ==================================================================================================
# Equation:
# Descritpion: plot the graph ( y - x + 1 - ( (y-x+1)^2 -4y )^(1/2) ) / (2)
# ==================================================================================================

def get_range(start, end, step = 2):
    return [x * 0.001 for x in range(start * 1000, end * 1000, step)]

def get_graph_z_real(x, y):
    return (y - x + 1)**2 - 4*y

def get_graph_z(x, y, real):
    return ( y - x + 1 - ( real )**(1/2) ) / (2)

def draw_graph():
    verts = []

    for py in get_range(0, 1):
        for px in get_range(0, 1):
            real = get_graph_z_real(px, py)
            if real < 0:
                continue
            pz = get_graph_z(px, py, real)
            verts.append([px, py, pz])

    o = get_object("graph")
    m = o.data
    m.clear_geometry()
    m.from_pydata(verts, (), ())

draw_graph()

This is a Geometry nodes solution:

the top part should not be displayed because it is imaginary. see my answer. only 4y <= (y−x+1)^2 can be plotted.

Here's a Geometry Nodes solution to cater to math domain $0<=x<=1$ & $0<=y<=1$

Note: In case you are wondering why it has jagged edges, it actually is an accurate representation of the boundary between real and complex numbers. See comments in GN: How to smooth out jagged edges after deleting geometry?
This one confirms the output of my python solution in the other answer.

Here's a Geometry Nodes solution using Volume Cube node. Take note that values for $4y > (y-x+1)^2$ are imaginary and cannot be plotted because there is no square root for negative values hence the imaginary check before the Density socket input.