text:
Muted colors after rendering
Does anyone know how to sync colour profiles across Blender and exported PNG? The colour looks perfect in Blender, and in the rendered view, but the PNG itself is slightly duller. I'm assuming this is because my screen's profile is "Colour LCD" so it's showing me what I want to see on screen, but the file itself isn't retaining the same info.
I've already checked color management settings as recommended by other questions on here, and also render using this method.
To get around this, I'm taking a screenshot of the rendered image in Blender and using that for now, as it preserves the colour that I'm achieving in Blender, especially through to Instagram.
This is a ridiculous way of doing things, and it doesn't solve the issue long-term, especially for exporting video, where I'm getting the same result.
The swatches below show the correct colour on the left (captured via screenshot) and the rendered colour from Blender (exported as PNG) on the right.
Any advice would be greatly appreciated

Hello and welcome... In general, when you render an animation, the best way to do it is with image sequences and using OpenExr to keep a linear color profile, that way, you could use any program (Like photoshop or After Effects) to interpret the color profile as you need it (like sRGB)

Thank you! I'll render the animation as an image sequence to manipulate the profile externally.
Just for context in case someone stumbles across this post with the same issue - The colour discrepancy that I'm seeing is the Image P3 profile being used by my Apple display (which also affects the Render Result preview in Blender) versus the sRGB profile of the exported image. If you don't align your monitor profile, your rendered images won't reflect the colour decisions you've made in Blender.


text:
Any tips specifically on creating this sliders?
does anyone what this sliders actually called? I tried looking for it on the internet but im just not sure what's it called. I'm trying to learn on creating it.
screenshot ref from here :
https://www.youtube.com/watch?v=K0f3izO2muQ&t=321s

is it a screenshot from a tutorial? if so, could you please link it? it may be custom objects that are targets of bone constraints, or drivers, or they have Action constraints in order to trigger actions... but it's just an hypothesis

Hello and welcome. Asking for links to resources about X is considered off topic here, asking directly about X is encouraged though. If you can rephrase your question to focus on the specific difficulties you are encountering, rather that point you to some site, please [edit] your post so it can be reopened. As it stands it is not a good fit for this site.

It may be a panel that allows to control animations through Action constraints. Let's say that you have created an action of 2 bones bending (in the case of a face it can be the character smiling, etc), give a bone constraint to one of the 2 bones with a small bone as controller, set all the parameters and select the action you've created at the bottom of the constraint panel. Enable the Copy Attribute addon, select the other bone, shift select the one that has the constraint and CtrlC > Copy Bone Constraint:

Now when you move the controller it triggers the action:

You can create a lot of controllers (that can be objects or empties instead of bones) for a lot of actions and organize them as a control board.
Note that the new Pose Library is pretty close to this function and may be more convenient (except it saves poses, not animations).
But this is only an hypothesis, what you show can also be drivers or controllers for Transformation constraints, etc.

To me it also looks like classic driven values, the only "specific" of this post is the UI. But I suspect it's just a picture on a plane or image empty, and the handles widgets are either pictures too or mesh objects, wearing the drivers. Or it's all a bunch of text, empties and mesh objects, whatever, it's not what's harder to do in this system. It's quite an old school way of making rig UIs to be honest, and not the most appreciated amongst animayors, in my little experience in the animation industry.

Sure it looks like a custom made, don't you think that Pose Library is probably a better option? Of course it only control poses, not animations, but I guess for face expressions it doesn't make any difference

Usually these setups are either driving controllers on the face, or shapekeys if not both. So it's a different system than using poses. Besides, it's supposed to be keyed too.

Peraonally I prefer controllers on the face that just move what's visually there, ideally something FACS based (even for cartoony rigs), with some custom controllers for fancy movements that aren't as simple as moving/rotation an area of the face.

Many of animators I've met don't really appreciate UI's that rely on panels and widgets on the side, because it feels too much disconnected. Animators like to feel like they are touching the face, contracting a muscle there, pushing some meat around. Not like they are programming a robot. And it's even more true when working on display graphics tablets IMHO

ok thanks for the explanations ;)

source: Stack Exchange

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

sort: votes


text:
Changing IK/FK switch range
Would someone assist me on this ik/fk switch problem i faced.Based on the  picture, when my IK switch moves from point A to B ,its just too far to reach its FK state. Is there anyway i can decrease the range?
The rig itself, is just a small dinosaur, just as big as a 5 year old's hand size.
I also tries to use bone constraint 'limit location' to few cm, but the influence only stop to a fraction between 0 to 1 (example, 0.3) when i change the range from 1 meter to few cm.
Should i mention the rig is using Auto Rig Pro?
Thank you
Here is the blender file.

You would use a Limit Location Bone constraint, this should give you exactly what you want.

Your problem probably has to do with the default settings, you will probably need to mess with them quite a bit to get exactly what you want. But the main thing is to set the owner to Custom Space and then target the bone you want it to be relative to. Then if you set everything to 0,0,0 it will occupy the same exact location as the parent bone. So then just add distance in whatever axis works til you get it constrained to the exact location you want.

I tried using your solution but alas it leads to same conclusion. Basically what happens is ,for example, the range for the ik to switch to fk completely is 1m in this rig of mine. So when i decrease the range of the switch movement to 20% of the original range, which is 20cm, the influence also only reach up to 20% . I can't reach 0 to 1 influence within 20cm. the complete swithcing still based on the 1m range. I hope i explained this well. I wonder if i can submit my file for inspection?

Use this link to share your .blend file. Then you can edit your post and paste it at the bottom.

You shouldn't be setting the Min Max XYZ to anything like my settings I posted. Check all the boxes with the Owner set like I show it and then tweak the values in Min Max XYZ to get the results you want.

thank you, i will submit the blend file for inspection as soon as i reach my studio.

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


text:
Blender 2.9 (and 3.0) Bone Name and Constraint Issues (Solved)
Blender 2.93.4 and 3.0.0
Issues:
Inverse Kinematics Bone Constraint applies to the Wrong Bone (AKA any Bone but the Selected Bone)
Bone Name is applied to the Wrong Bone and Bone Information is not shown in the Right Side Tab (Information is the same no matter which bone is selected/Bone Information is not updated with bone selection)
-Both Problems are present in both Edit and Pose Mode
-Both Problems are present with any New or Pre-Made Rig
-Both Problems are present in any .blend File
I am not well versed with Blender Rigs and I have just started learning Bone Constraints like Inverse Kinematics so I haven’t been able to find a working solution or a root cause on my own unfortunately.
__
Solved:
-User Error - was using the box select tool
__
Photos of Issues Below

The current version of Blender 2.93 is 2.93.9 so it might be worth updating to that here to see if any bugs have been fixed if you can't use a later version.

It appears that you had both "New" and "Bone.001" selected when you added the IK constraint; but since you had selected "New" last, making it the active bone, the IK constraint was applied to it.  Not a bug. Try deselecting all (ALT-A) and then select just one bone.  The IK constraint should apply properly.

@MartyFouts You were correct that it was a user error. I was selecting the bones with the box select tool and I guess Blender doesn’t count that as an actual selection for bones and sticks to the last selected. Glad it was just user error lol.

Box select adds to the selection, so you probably had one bone selected already; or you managed to draw the box to include both bones.


text:
Only 1 Texture Baking When 2 Must Be Baked [Blender]
I'm new to Blender. I have an issue with the texture baking. I am trying to bake 2 textures together in blender so I can use them in my Roblox game. The main problem I'm having is when I bake the 2 textures, only 1 of them comes out.
While Baking:

After Baking Is Done:

Both textures have their metallic value set to 0, and, as seen in the photos, the Direct and
Indirect contributions are turned off.
Images Of Shading Nodes (Of Both Texture Nodes) Tell me if I did something wrong:

Any help would be appreciated, Goodbye!

Hi Please use a title that reflects the content of the question. It should be descriptive but succinct, unique and identifying, summarizing the issue so that users can at a glance understand what your post is about. Use the [edit] link below your post and avoid anything not strictly essential to the post. Remember, your title is the first thing potential visitors will see, and makes your question findable for future users. See "What is the problem with posting an image or link and asking “How do I do this?""

Hello, if RPaladin's answer is not correct, please pack your images and share your file

@moonboots Here ya go
https://drive.google.com/drive/folders/1dk_7CWuXbyXxzeK5fMTqNymcBTlyEJ8l?usp=sharing

@moonboots Sorry, try this.
https://www.mediafire.com/folder/w88tf03rr9id5/BlendFile

it's an .obj with no material, could you please share a blend file with the object and its materials?

@moonboots https://www.mediafire.com/file/lhf43dy87nbx4n2/SeweragePothole.blend/file

You need to:

Put the same Image Texture node in both the 2 materials with a new black image, call the image Bake for example, keep the node selected in both the 2 materials
Put the Metallic value at 0 in both the 2 materials
Select the second UV map in the Object Data panel > UV Maps
In the Bake panel choose Diffuse with Direct and Indirect off
Bake

I suspect that you haven't specified which texture + UV to use in the baking process for your 2nd material. Each of your materials should have an extra Image Texture node as well as an extra UV Map node. The extra Image Texture node should have attached the image you want to bake to.

Thank you, it worked! However, when applying the baked texture to the mesh, it looks messed up. Do you know how to fix this?

Make sure the mesh with the baked image also has the UV used in the baking process. Make sure you're also not actively selecting a different UV in the mesh tab of the properties editor, otherwise it'll show your images for that mesh based on that other, actively selected UV.

That doesn't seem to work.
https://imgur.com/wBUAnDK
Am I doing something wrong?

First of all, I don't see that your UV nodes have any UV data-blocks selected. Secondly, did you do this bake setup for both of your materials? If all else fails, please edit your initial post and include your blend file.


text:
Is there a way to reposition all vertices so that they are evenly distributed across the mesh?

As you can see in the image, there are small clusters of vertices on my mesh. Is there a way to evenly space all vertices so that all the triangles are the same size across the whole mesh?

According to the documentation, Blender 2.79 has the Detail Flood Fill operation for Dynotopo like the newer versions of Blender. You need to set Detail Type to Constant Detail and a Resolution value. With Sample Detail Size (pipette icon) you can sample a value from the mesh.

@Blunder your recommended technique of 'Detail Flood Fill' has indeed achieved exactly what I am looking for, I thank you greatly for that. However, now my mesh texture is all scrambled up. Any ideas?

Choose a Dyntopo Detail Size that is about the same size you're looking for, put the brush Strength at 0, paint:

Another method would be to use the Remesh tool but it will change the whole topology.

Excellent, is there a way of retaining texture accuracy too? Because after this, the textures are scrambled up wherever I have used the brush strokes.

oh ok, I don't know how you can avoid this  :/


text:
Keyframing object's active material color using Python API
I have a use case where I have to change an object's material color per keyframe (i.e. the color will change instantly between keyframes). I have been able to easily do this for other data (location, rotation) but have been stuck on the color part. I have to do this programmatically through the Python API.
Other answers I looked at:
1
2
I believe I am doing what the answers in those questions suggest, but have not been successful. Here is a minimal example where I want the cube to snap between red and blue colors for 1000 keyframes:
import bpy
import numpy as np

cube = bpy.data.objects["Cube"]

material = bpy.data.materials.new('material')
material.use_nodes = True
base_color = material.node_tree.nodes["Principled BSDF"].inputs[0]
red = [1,0,0,1]
blue = [1,0,1,1]
base_color.default_value = red
color = red

location = np.array([0,0,0])
for i in range(1000):
    cube.active_material = material
    bsdf = material.node_tree.nodes['Principled BSDF']
    bsdf.inputs['Base Color'].keyframe_insert(data_path="default_value", frame=i)
    cube.location = location
    cube.keyframe_insert(data_path="location", frame=i)

    if color == red:
        color = blue
    else:
        color = red

    location += [1,0,0]

# change this path to an absolute path on your computer
bpy.ops.wm.save_as_mainfile(filepath='C:/Users/m/Desktop/test_render.blend')

This does not produce the desired behavior. I can see the the material's base color property has the diamond symbol to the right, indicating it is keyframed. But the cube does not change to blue at any frame. What am I missing? Do I have to change the current value rather than the default value? I tried this, but there is no "value" data path.
Thanks!

You forgot to set the color value before inserting the keyframe in the forloop. Set the current frame to i, set the color and insert the keyframe.

yeah you forgot to call base_color.default_value = color before the keyframe_insert line. and your line blue = [1,0,1,1] is not blue. that is pink. set it to blue = [0,0,1,1] instead. optionally if you prefer, you can have a one liner for the if/else part like color = blue if color == red else red

Ahh I see, thank you both!

As with most issues it turned out to be a silly problem. I forgot to set base_color.default_value = color as mentioned in the comments.


text:
Track to constraint eye rig having issues
I am trying to make an eye rig using the track to modifer for rigify. For some reason, the eyes location gets messed up after generating the rig.
Here is how I set up the modifier:

This is what the eyes are supposed to look like:

This is what the eyes end up looking like:

I've tried fixing the rolls of the bones, turning off the deform for the rigify type, but haven't figured it out. The eye bone (which is parented to the head bone) tracks to an eyecontrol bone, which is parented to an eyemaster bone. The eyemaster bone is parented to the head bone.

When we enable the display of axes (and hide a lot of stuff, so we can focus on what we're seeing) then it's obvious what the problem is.  I'm comparing rest pose on the left with constrained pose on the right:

The track-to constraint is set to point the +Y axis at the target, while keeping the Z axis pointed up.  But the Z axis on your rest pose points down.  And the Y axis isn't aligned with your iris.  Between these two facts, the bone rotates 180 degrees (about its Y axis) to meet the demands of the constraint and that means that the iris points cockeyed.
We'll have to fix both of these axes problems to start to solve the problem.  I'll snap the tail of the bone to the center of the pupil to fix the direction its pointing, then I'll adjust the roll of the bone to point its Z axis up (I'll do this with "recalculate roll->view axis" operation from a numpad 7 view):

This still rotates the eye from the rest position, because I've changed the Y axis of the bone but haven't moved the target of the track constraint.  But it rotates the eye in the right way.  If we'd like, we could move the target (in edit mode) to a proper position to prevent this rotation without posing it.
However, you'll see that I disabled another constraint on the bone, a "copy transforms" constraint.  It looks like you're using Rigify, and the best thing to do is to change the axes on the eye bones as described on the meta-rig and then regenerate the rig.  Your meta-rig is not in the file provided.  However, instead, we can also do the same adjustment to the axes of the target of the copy transforms constraint, and then it'll work fine:

(Or, it would probably be better to just put the constraint on the target of the copy transforms constraint, rather than on the "org" bone.)


text:
Join as shapes messes up mesh
To sum things up, I am trying to use the "join as shapes" option, but for some reason the resulting shape key is really messed up. I made sure both meshes have the same number of vertices, and the toplogies seem to be similar enough, but am not sure why I am getting this result. Using transfer shape keys gets virtually the same result.
Here is the base mesh:

The resulting shape key:

The meshes need to have the same topology.  The same number of vertices does not mean they have the same topology.  'Similar enough' topologies don't cut it.  Here, it appears that your meshes do not have the same topology-- likely, they have a different vertex order.

I see, is there a way to fix that. I looked at the topologies and it looks like the area around the eyes is the only area that is different, which is what I want as a shape key.

I had this issue and I applied my modifiers and this seemed to solve my issue. Hope this helps.

It's not about looking the same, it's about being the same. You could add a cube to your scene, then add a plane and edit it to make an exact replica of the cube, chances are you will not have the same topology just because the Vertex indices will be different.

It's not about looking remotely the same, it's about being the same. You could add a cube to your scene, then add a plane and edit it to make an exact replica of the cube, chances are you will not have the same topology just because the Vertex indices will be different, and making a shapekey out of it will give strange results:

The normal way to do shapekeys is to either do them directly on the original objects itself (add a Basis shape, which is your original shape that you should never change, then make a new shape and edit that one), or duplicate your original object, modify the duplicate, and join that as shapekey to the original. In either cases, you should never add or remove anything from your mesh.

There might be a way to somehow recover your shape, I haven't tested that method though.
If they are visually strictly identical in topology but not in indices, maybe you can try to reassign the vertex order on both your original and shape object using this method, though it might break other things like UVs and weights, and it might still not work. I'm not sure.
Put the two objects in the exact same place, put your 3D cursor away from them using ⇧ Shift RMB, select both and switch to object mode before using the menu Mesh > Sort Elements > Cursor Distance. Then redo the shape key.


text:
Fix bone symmetry
I'm having an issue where some bones on my armature aren't perfectly symmetrical with the corresponding bones on the other side. Is there a way to fix this without having to delete the bones?
To further explain, the hand bones on the rig aren't lined up correctly. Normally if a bone is symmetrical to another bone, both bones will have the same Y and Z locations and inverse X locations (for both the head and tail). This is not present in the rig and would be tedious to fix manually.

Hello and welcome! Unfortunately we can't help fix it without any images or blend file https://blend-exchange.com :)

First, check bone names that should be symmetrical-- they should have the same names, followed by either .R or .L to indicate side.  Then, select one side of your armature in edit mode-- a box select makes this easier-- and use the "symmetrize" operation.

Nathan's comment sums the fix up pretty well. Just be sure to select the bone you want to keep in place first as the unselected bone's location will be replaced with the selected bone's mirrored location.


text:
Rigify rig causes mesh to collapse in on itself
For some reason, this rigify rig I generated causes any mesh to collapse in on itself and have several vertices attach to the world origin. See picture below


text:
How to make shape key "presets"
I'm looking for a way to have multiple shape keys be combined to form a single shape key. If anyone's familiar with Daz studio, I'm looking for something similar to a parameter. Is this something that is achievable in Blender?
I'm not looking to make a new shape key, looking for something that saves a little space.

Next to the 'Shape Keys' list there is a dark gray button with an arrow, it will open a menu which has an operator called 'New Shape from Mix'. It'll make a combined shape key.


text:
Gamma Correction for textures ripped from the Nintendo Switch
I have some models that were ripped from the Nintendo Switch and most of the gammas on the diffuse textures are broken. I have no idea how to fix them.
Here are the models in question: https://mega.nz/folder/MVcmxK5Z#okChiYnaaEvGsmu_WxvmrA
If this is not the right place to ask, where would be a good site to ask this question?

Blender comes with a powerful node-based image editor, the Compositor. You can do this in Blender. I list the steps to create the setup below, but depending on your situation, you may need to tweak the settings to get the output you want.

Switch to the Compositor workspace, and enable Use Nodes.
Add an image node (Add > Input > Image), and open your image. Blender sets the Color Space to sRGB by default. This is one of the settings you may need to tweak.
Add a Convert Colorspace node (Add > Converter > Color Space), and set the From and To fields based on your needs. Connect the nodes.
Set the View Transform to Standard under Render Properties > Color Management.
Set the resolution of the render to match your input image (Output Properties > Format).
Set the image output settings as desired (Output Properties > Output).

Now, if you press F12 to render, the image will be processed and shown as the render.


text:
Rigify hip distortion
I've set up a rigify rig for a base mesh I've been working with. An issue I've noticed is that the hip bone makes the hips messed up when rotated on the y-axis to the right.

Here is the file:

WARNING: The original version of the model had some explicit features. I did my best to edit all of them out.

About your main problem, you need to rotate this bone 180° in Edit mode (CtrlR180) so that it is aligned with the next spine bones:

Also you have overlapping vertices in your mesh, so select your character and in Edit mode select all and M > Merge by Distance with a threshold of 0.001. Now you can parent again With Automatic Weights.

While that fixes some of the issue, I still have a problem where the hip area gets all "swirled up" when rotated or moved in certain directions. I edited the post with what the deformation looks like.

OK I've edited my answer, it should be good


text:
Weird "dents" in mesh
A model I'm working with has these weird dark spots in certain places. I've tried methods from recalcuting normals to sculpting with the smooth brush, but nothing makes it go away.
Here's an image of what I'm talking about:

There is no image.

Maybe try Data panel > Geometry Data > Clear Custom Split Normals Data?

@moonboots That worked. Thanks

You have a problem of split normals (the normals that determine the shading). To fix it, go into the Data panel > Geometry Data > and click on Clear Custom Split Normals Data.


text:
How to switch between multiple textures in a material using a driver
I have a customizable model with multiple textures for the body (4 to be exact). How would I be able to easily switch between these textures with a driver. If I had 2 I'd be able to use a mix modifier and add a driver to the factor slider, but since it only has two inputs I don't know how I could do that.
For more specifity, I want to achieve what is answered in this question, but with more than two inputs: Is there an easy way to create a model with multiple texture inputs and then easily switch between them?

Create a custom property, min=0, max=3
use these drivers for the mix factors:
first driver:

second driver: like first, but scripted expression is "prop - 1"
third driver: "prop - 2"
material:

result:

if you wanna do it more carefully you can also use
max(prop - 1,0)


text:
Rigging a pupil as a separate mesh
I'm having difficulty setting up an eye rig for a model where the pupils are a separate mesh. I want to be able to move the pupils, but only confined within the eye istelf. I've tried using the shrinkwrap modifier, but I can't find a setting where the pupil doesn't become severely deformed.

hello could you please share your file or at least show some screenshots?

Just added the blend file

Maybe first remove the shapekeys of the eye, align the mesh with the world XYZ and put the origin at the center:

Give a Shrinkwrap constraint (not modifier) to the eye with the eye as Target, activate Align to Normal (X):

Move the eye on Y and it will stick to the eye. Maybe give a Subdivision Surface modifier to the eye and parent the pupil to the eye. Result:

This mostly works, however I can't seem to get it to work with an armature.

You need to parent the eyes to the head bone


text:
sculpting breaks symmetry
For some reason when I sculpt a model in blender, the x symmetry is broken when in edit mode (vertexes that where symmetrical before sculpting become asymmetrical after sculpting). I have the x mirror turned on when I sculpt, so I'm not sure what the issue is.
To further explain, I have highlighted this issue in the video. Before sculpting, the monkey head is perfectly symmetrical and the x-symmetry works on point. However, after sculpting, the symmetry is suddenly broken and no longer works, despite x-symmetry being turned on in sculpt mode.
https://files.catbox.moe/zm86jc.mov

Hello, either you need to apply the rotation of your object in Object mode, or your object is not really symmetrial, in that case in Edit mode select all and Mesh > Symmetrize (and set the axis in the Operator Box). If it still doesn't work please share your file:https://blend-exchange.com/

Having the same issue. If I go back to Edit mode and click any vertex it seems to fix it, but while in Sculpt mode, it throws vertices all over the place. At times, it will break the clipping, even if the vert hasn't moved. Seems like maybe a bug?


text:
Open a Blender 3.5 file in Blender 3.4 and earlier
Is there any way to open a blend file made in Blender 3.5 in older versions of Blender? I'd go the FBX route, but I want to preserve the rig.

It seems the issue comes mainly from rigify rigs. If the rig is removed, the file is able to be opened in 3.4. Anyone know why this issue arises and if there's a fix.

If simply opening does not work(it does when I try it), you could try appending from the file:

It's generally not a very good idea to do this as this might corrupt your data and it is hard to tell what features might stop working. You might have unexpected issues in the future if the project you are working on is big and complex. It is better to remove the obstacles stopping you from using the newer version.

Thanks for the tip. I want to use the new version but my Mac can't update to 10.15 which is required.

Blender stores data in data blocks which make it safe to open the file in an older version of Blender. Yes, the project might stop working, because e.g. some Geometry Nodes will not be recognized, but from my experience you can do something in an older version just because an extension works there, save the file, open it again in the newer version and the file is not corrupted. Which is pretty rare for software.

I have had problems even when opening files with newer versions. That happened when Color Mix node was changed for example, and plenty of other times. It's not a very good idea to change versions in the middle of a project in any case. Even if it's fixable, it's extra work. It's better to avoid if possible.

Appending doesn't seem to work for me. Everytime I try to append something, whether it be a scene, object, or mesh. Blender crashes everytime.

You can start to append the whole "scene", first. If you still have problems, you can append individual objects or collections one by one, and check if all works. But there's no guarantee all will work.


text:
Is there a way to shrink/fatten that properly handles any resulting self-intersecting geometry?
Specifically, I am working with manifold meshes and Boolean modifiers.
I have a high-poly-count 3d mesh which is my reference shape.  I want to subtract it from another shape but with a small gap -- like for making a form-fit holder for a trinket.
Everything works fine if I don't fatten the object before subtracting it, but if I do (to make the small gap), Blender crashes at the Boolean modifier (presumably because fatten is inflating the object through itself in some places and not properly "union"ing the object with itself).
My source object is a clean manifold with no self-intersections, but it is intricate and will self-intersect with any fattening.  The result I want is well-defined (self-union with the sweep through the inflation amount), but I can't find how to do it.
Any suggestions?
Update:  Here is a very simple way to replicate the problem.  This doesn't cause a crash, but it does fail in the way I'm trying to solve:
Create three cubes arranged like this (the two upper ones are not quite touching, and are partially embedded in the lower one):

Join (select both -> ctrl-J) the two upper cubes into a single mesh.
Add a modifier to the bottom cube, Boolean, Difference, and select the upper cubes (now one object).  Do not "apply" the modifier -- leave it dynamic so you can see it change later.

If you hide the upper cubes it should look like this:

Select the upper cubes:

edit mode -> a (select all) -> alt-S (shrink/fatten)

Now, as you dynamically shrink/fatten the upper cubes, they will self-intersect at some point, and when they do, the cube on the bottom will disappear.
If you go back to the Boolean modifier on the bottom cube and change it to Fast, the cube no longer disappears, but it still "breaks" once the upper cubes intersect.  Here's how that looks (with the upper cubes hidden):

Note this is an intentionally simplified example, which could be solved other ways (like Booleaning the top two cubes together first), but I am looking for a solution that is applicable to the case where the mesh (here the two upper cubes joined together) is something large and complicated (like an organic shape) that I can't apply ad hoc solutions to by parts.

can you include some screenshots?

Added a screenshot of the mesh.  There's not much else to show -- if I fatten that mesh just a tiny bit, it looks about as you would expect, but then crashes with any Boolean modifiers.  Almost certainly the fattened mesh is full of self-intersections (because afaik fatten doesn't handle that, correct?).

is the scale already applied for both objects? using Ctrl+A. also try selecting all vertices and doing Ctrl+M to merge by distance to remove any duplcate overlapping vertices. boolean operators are flawed especially for very intricate meshes so be careful. if the difference modifier doesn't work and crash blender, maybe try Union? then delete the parts you don't need.

you could also maybe share both objects, the original mesh to subtract from and the mesh to be used as difference mesh. then i might be able to try on my side. just show me a screenshot of how it should be positioned. and please can u clarify what you mean by "flatten"?

Yep, did all those things but no change.  The issue is pretty fundamental, I think -- when you fatten the mesh it self-intersects, and then the Boolean operators go wonky.
I made a simple test with the mesh and a cube.  I can post or send a .blender file if that would work?  (It doesn't crash, but it doesn't work either -- the result looks good before you shrink/flatten, but once you do the cube just goes away instead of getting a bite taken out of it as it should.)

Ok, I have a much simpler way to replicate.  I will edit the original post.

FWIW, I tried Marco Attene's meshfix (on the real mesh in question, after fattening) and it failed (as in gave up explicitly) too.  :(  (It also doesn't work for this trivial test case because it seems to require a non-disjoint mesh.)

awesome! +1 for your answer, sorry was busy but glad u solved it :)

For your example, leave the top cubes separate objects, and rather than just joining them, boolean union them.  Then boolean difference the bottom cube from the union of the two top cubes.

@Nathan yes, note my final paragraph.  Any suggestions?  (My answer below "works" but it's inexact and crufty, so a better solution is possible.)

@Brandyn If you're using a different shape, then that's relevant to the question.  I need to know the shape to see what to do.  The short answer is, fix the self-intersection.  How to do that depends on the shape.  I would probably start with smooth operations on any self-intersecting areas.

@Nathan my current case is a high resolution manifold mesh (about half a million faces) of a full set of teeth, with detail down to the fine crevices of the molars and such.  Many of the crevices and all of the (messy) junctions between teeth create self-intersections after fattening, some of which could be sub-pixel in size, even at high zoom, which makes them hard to locate visually even when highlighted.  The final mesh needs to be perfectly manifold.  Man-hours also matter of course.  So between all of that I am looking for a non-manual solution.

@Brandyn Then I'd probably make a cage mesh and shrinkwrap the cage, with offset, to the original mesh, then boolean with that cage rather than the original mesh.

Thanks, I'll give it a try when I get a chance.  Any guess how that method would compare to the voxel based re-mesh (in terms of the quality/properties of the final result)?

This seems to work, if a complete re-meshing is acceptable (generally is for 3d printing):

Original object -> Edit Mode
alt-S to shrink/fatten your mesh as desired
Switch to Sculpt Mode
ctrl-R to voxel-based re-mesh, in order to fix the mess that shrink/fatten created.

The resulting mesh should be a manifold and safe/correct for Boolean operations or direct 3d printing.  Beware it will be very high poly count even if it started out simple.  You may have to tweak the remesh resolution and such (defaults worked well in my case).


text:
Calculate the distance for every entry of 2 lists with x y z 3D coordinates using python
I have two numpy lists with 3D coordinates of vertecies of two meshes. These lists are of unequal length. I would like to calculate the 3D distance between every coordinate in arrayA and arrayB.
arrayA([[X1 ,  Y1 , Z1],
       [X2 ,  Y2 ,  Z2],
       [X3 ,  Y3 ,  Z3]])
       ...

arrayB([[X1 , Y1 ,  Z1],
       [X2 ,  Y2 ,  Z2],
       [X3 ,  Y3 ,  Z3],
       [X4 ,  Y4 ,  Z4]])
       ...

While searching I found this post about getting a single 3D coordinate pair distance but I am not sure how I can use it as my numpy arrays are of unequal lengths.
I would like to generate a numpy array with all the lengths. This means distances of All 3D coordinates from ArrayA with the first, second, third... (and so on) 3D coordinate of ArrayB.
---EDIT---
I feel like I have been able to make some progress but I think that something is still not right. I am experimenting with a subset of all the coordinates ant took the first 3 vertices from the two meshes. So ArrayA (vertex_array[0]) has 3 XYZ coordinates and ArrayB (vertex_array[1]) has 3 XYZ coordinates. I am expecting to get 9 output entries but it outputs 12. I have also put in a couple of print statements but I can't seem to figure it out.
import numpy as np
...
iterate = 0
iterate2 = 0
...
for entries in vertex_array[1]:
    for vertex in vertex_array[0]:
        p1 = vertex
        p2 = vertex_array[1][0]
        iterate = iterate+1
        squared_dist = np.sum((p1-p2)**2, axis=0)
        dist = np.sqrt(squared_dist)
        print(dist)
        print("loop 1: " + str(iterate))

    p3 = vertex_array[0][0]
    p4 = entries
    iterate2 = iterate2 + 1
    squared_dist2 = np.sum((p3-p4)**2, axis=0)
    dist2 = np.sqrt(squared_dist2)
    print(dist2)
    print("loop 2: " + str(iterate2))

Output:
3.677461821966065
loop 1: 1
3.36723045259329
loop 1: 2
3.7110807813512268
loop 1: 3
3.677461821966065
loop 2: 1
3.677461821966065
loop 1: 4
3.36723045259329
loop 1: 5
3.7110807813512268
loop 1: 6
4.029668579506317
loop 2: 2
3.677461821966065
loop 1: 7
3.36723045259329
loop 1: 8
3.7110807813512268
loop 1: 9
3.7166097270669267
loop 2: 3

You can calculate this purely using Numpy, using the numpy linalg.norm (Euclidean distance) fucntion:
distances = np.array([ np.linalg.norm(B - p, axis=1) for p in A])

We're making use here of Numpy's matrix operations to calculate the distance for between each point in B and each point in A.
For the following two arrays, this will be the result (using 2D arrays for simplicity, but it will work exactly the same for 3D arrays):
A = np.array([[0.16869694, 0.18218867],
       [0.13406977, 0.92704429],
       [0.42916002, 0.70700565],
       [0.31897904, 0.74722291],
       [0.95014724, 0.37253304],
       [0.25335466, 0.46849091],
       [0.15266878, 0.69878319],
       [0.81076298, 0.46946201],
       [0.03145542, 0.62978006],
       [0.63422485, 0.37211463]])

B = np.array([[0.82858205, 0.88478606],
       [0.11420783, 0.21636374],
       [0.48167179, 0.68689633],
       [0.09455677, 0.25089711],
       [0.73376651, 0.05755397]])

distances = np.array([ np.linalg.norm(B - p, axis=1) for p in A])
print(distances)

# Result:

array([[0.9638939 , 0.06431951, 0.59387127, 0.10108223, 0.57865139],
       [0.69579671, 0.71095805, 0.42249049, 0.67730073, 1.05624316],
       [0.43719998, 0.58303034, 0.05623051, 0.56568042, 0.71733716],
       [0.52784359, 0.56898392, 0.17351723, 0.54470602, 0.80479308],
       [0.52648006, 0.85040199, 0.56417508, 0.86419347, 0.3821419 ],
       [0.71006211, 0.28797561, 0.31595829, 0.26937675, 0.63219042],
       [0.7010391 , 0.48395018, 0.32921768, 0.45164028, 0.8653609 ],
       [0.41570613, 0.74111256, 0.39443465, 0.7488137 , 0.4190426 ],
       [0.83692229, 0.42161715, 0.45382491, 0.38410164, 0.90591588],
       [0.54827613, 0.54284072, 0.34979988, 0.55311421, 0.32993477]])

How do I rearrange the order that the distances are displayed in? I notice that the first distance value is distances[0][0]. The second distance value is distances[1][0]. Third value is distances[2][0]. This is not very intuitive to me. I'd prefer to have them coming one after the other so that I can easily find the index of a particular distance measurement.

You can rearrange the original arrays to change the order of the final results, or run (A - p, axis=1) for p in B in the norm function, to get [0][0], then [0][1], if I'm not mistaken


text:
why does my shader with many inputs turns black?
I have a randomizer for 30 inputs which I multiplied by for groups. According to the last picture the shader doesn't work if any of the green node groups are connected to the upper mix node. I have been looking for the problem and I haven't found it. I would be appreciated if you could help.

The link to the simplified file with the issue

I would guess that the answer you got to the question you asked here applies to this question too!

Does cycles have those limitations too?

I'm not sure if without inspecting actual file someone can say ... try delete all parts that doesn't participate on issue and share this simplified file with us. Cleanup your file make it smaller and easier for others to understand what is going on. Thanks

Thank you very much @vklidu . I uploaded the simplified file. he problem occurs when I connect anyof the node groups to the upper mix node(last picture). I don't know if the problem is from the node group(second and third picture) or the combination of the main nodes(first and last picture) or the randomizer node group(fourth and fifth picture). I guess I've made a simple mistake but I can't find it. I would be so appreciated if you could help me.

The usual debugging technique is a binary search - remove half of the setup and see if the issue disappears. If so, then remove only half of the half of what you have just removed, and so on. Either the error is caused by a single node, that you can eventually find this way, or it's a problem that accumulates and you will see how e.g. the material gets darker and darker as you add more nodes.

All tips in comments are correct.

If you was already faced to the similar issue in Eevee you could try to delete some Image textures to see a difference (as mentioned by John Eason)

The usual debugging technique is a binary search - remove half of the setup and see if the issue disappears. ... (Markus von Broady) ... When I
delete exactly 20 textures (or more) from any Node Group than black is solved.

Conclusion - You probably reached maximum of Image textures in a material.
Problem is not number of Image texture nodes, but number of unique image/movie sources. When I tried to hunt your issue I tried change missing textures by same image ... and again - if 20 nodes was assigning to a same source black disappeared.
So ... as mentioned by Markus (again) in the comment of your previous Q merging into less sources should solve your issue.
Note:

My bad I spent two ours to checking node tree since I expected you already tried to eliminate issue of texture limit
Topology of tv screen is quite bad and in some light condition will generates ugly shading
Few screens left without an Image ... probably out of range generated by Random?

Thank you very much @vlkidu. In the original file, the topology is better than the version I've uploaded. I did that to decrease the size of the file. About the texture limit, It was my bad. I was stubborn to use my way to import textures individually. Since this is a project for people of Iran fighting for freedom, you literally saved lives by your help. Thanks again

Sorry for my words ... great if that helped, good luck with your project :)


text:
Mechanical rigging issue
I have this robot that I'm trying to rig with an IK chain and I'm running into an issue where certain joints don't want to obey the rotation constraints I put on them. My goal is to have every joint rotate on the axis to which the servo it's attached is designed to rotate. I've been able to accomplish this fine for the lower joints of the leg using the normal rotation constraints in the IK tab of the bone properties, but for whatever reason, they don't want to work for the joints in the upper "hip" portion of the leg.
I've posted the .blend file here:
https://filebin.net/mphozhgm5rzmrxj4

I need to stop this joint from clipping through its bearings, how would I do this?

without seeing your settings it is really hard, we can just guess. So i think the best help for us would be, if you provide your blend file.

Your file link is broken for me, or else I would take a look.

@Nathan It's not broken for me, i see walkerrig.blend in the link 21MB.

@HarryMcKenzie Thanks, it's working for me too now.  Maybe just a hiccup...

Hip.L.001, the bone that you want us to look at it, is the root of a 12-bone long IK chain with a pole target.
The problem here is that Blender does not take IK root bone limits into account for IK chains with pole targets.  The pole target code needs to rotate the root bone freely for its algorithm.  This is a known issue, with a long-standing bug report associated with it (which Google can't find for me at the moment), and it's unlikely to get fixed, because it's part of how pole targets work.
So if we need the IK to respect the angle limits and locks on the IK chain's root, we need to disable the pole target.  As soon as we do that, we can see that those limits are respected:

The question then is, how to control the rotation of the leg structure as a whole, if not with a pole target, and not with a parent outside the IK that would break angle limits?
Even when bones are under the control of IK, they still respect their base transform, which provides angles for each bone.  The IK solver tries to minimize the difference from these angles in its solutions.  So we can rotate bones in the IK chain to control the structure's rotation.
In this case, we have 12 bones, many of which are strongly limited, so it's a little tricky to decide exactly how we should rotate bones in the IK to rotate the entire IK.  There are two good choices here, Knee2.L.001 and Hip4.L.001, but Hip4.L.001 looks like its limits aren't quite right for the mesh, so let's rotate Knee2.L.001:

By rotating this bone manually, we can control the general direction of the chain's bend.  Other bones will adapt to meet the changing angle of Knee2.L.001 in relationship to its parent.
If we want a more automatic solution, we can't use constraints-- constraints are ignored by IK-- but we can use drivers, which reference the transforms of constrained bones (provided those constrained bones are in no way dependent on IK, otherwise Blender chokes.  IK->driver->IK doesn't work.)

Here, I've created a bone with the same parentage as the IK root bone, damped tracking the IK target, with a new child bone locked tracking the pole target.  I can use the Y rotation of this child bone to drive the rotation of Knee.2.L.001.  This isn't exactly the same as a pole target, and it's often something you'd need to tune individually for each chain, to get the exact automatic behavior you want, but it is a possibility.


text:
Materials cannot be seen in Blender 3D Viewpoint
my problem is hard to describe so here's a record of it: https://youtu.be/yOaqwZkTl0Q Basically when I go into the shading tab the object is sort of invisible with a delay, as when I move around it takes the color of the background...  The cube is just the default cube, so this is just an empty project, thou the same happens with projects I made previously, when my Blender was working, even with bought shaders
The problem arises only when I use any shader. If I put e.g. the Color ramp directly into the material output without any shader I get the cube green.
I work with materials very rarely, so maybe its something really simple or stupid, but via google I couldn't find this exact problem. And as far as I remember it should not behave like that? Like when I set basecolor green I expect the cube to get green. In tutorial videos it works that way at least. Render Engine is Eevee, Blender version 2.90.0. Thanks for your help

https://blender.stackexchange.com/questions/204297/amd-gpu-material-in-material-preview-mode-and-rendered-mode-is-entirely-gra

Ah, perfect, Thank you very much!


text:
Fit subdivision surface to existing mesh?
Is there any (semi-)automatic way to generate a subdivision surface (i.e. a low-resolution mesh with subdivision applied) from a high-poly mesh?
For example, say I have a sphere with 1k polys. (Not nice, neatly arranged polys, but the sort of mess you might get from a photogrammetry reconstruction.) The goal is to get a mesh that, when C-C subdivision is applied (with sufficient steps), closely approximates the original mesh.
I'm hoping for something a bit more goal-oriented than applying a ton of decimation to the original and then offsetting it. The more initially automated, the better, but I could live with something that requires an initial SDS and fiddles with it to more closely match a target mesh.
And no, decimate's "un-subdivide" mode isn't doing it. I suspect what I really need is something that takes an initial SDS and fiddles with the vertices to minimize the overall deviation from the target surface.

did you try the decimate modifier?

On one mesh, it effectively did nothing. On another, it sort-of worked for about one iteration before turning the mesh into a complete mess. And it only seems to work if the input mesh has nice, neat faces, like you'd get from something that was originally subdivided.

I think the closest thing you can get to is the Remesh feature under Object Data Properties

Remeshing in Blender or through third-party tools like Instant Mesh or more modern tools in the same space, would be what you're looking for.

@HarryMcKenzie, Remesh is... really not what I'm looking for, either. Some of the ideas there are "right", and it might be useful for generating an initial SDS, but really looking for something that will "optimize" an SDS for best fit to an existing mesh.


text:
How to generate symmetrical UV maps?
As far as I can tell (having recently come across an outstanding feature request on the official tracker), there is no way to maintain symmetry of a UV unwrapping that is comparable to the 3D mesh symmetry tools. And Copy Mirrored UV Coords appears to be broken (again, various reports floating about, and  can't get it to do anything).
When you have a mesh that needs perfectly mirrored¹ UV coordinates, how do you achieve it? Lots of tedious manual coordinate editing? Hope to get lucky and have Blender's automatic unwrapping produce something that's already symmetrical? Or do you have a trick to make it easier?
(For bonus points, do you have any tricks for perfectly rotating an unwrapping that is symmetrical, but not aligned to an orthogonal axis?)
(¹ By "mirrored", I do not mean "duplicated", i.e. multiple faces that are mirror images in 3D sharing UV coordinates.)

Here's an example of the sorts of problems I run into on most of my models, using Sue:

In this case, I lucked out with the back of the head and the ears, but the face is rotated, and the eyes are both rotated and oddly distorted. (The ears appear symmetrical but are badly distorted, but that's my fault for not seaming them better. Don't worry about the ears. The point of this is just to show that Blender does not producing symmetrical unwrapping "out of the box".)
This is particularly a problem with models that are "not very round". Consider, for example, a humanoid that is seamed with the front and back as separate. Obviously, both of these should be symmetrical, but unless I use a UV that is much taller than it is wide (which I've found tends to result in very sub-optimal packings with lots of wasted space), I obviously can't just mirror everything across x=0.5.

Do you have an example of a model where you are struggling to achieve this?  I think symmetrical UV maps are normally the default! If you unwrap them using the normal process, so am struggling to see what the difficulty is.

Um... anything? Sue? I'll add an example...

All you gotta do is unwrap your mesh as normal, make sure whatever "center" line parts of the UV are perfectly straight and centered at the .5 mark in the UV space (.5 X or .5 Y depending on which way you want to mirror.)

I wrote an operator awhile back that automatically aligns your UV Islands to the .5 mark.

You can download that here if you want, (no guarantees on it working perfectly for you out the box, it's not an addon, it's just my personal scripts so they aren't all pressure tested. They work for me. ¯_(ツ)_/¯ )
This is just a convenience thing, not 100% required.
Then you just add a mirror modifier and under Data check Mirror U/V depending on what you want.

The once you apply the mirror modifier the mesh UVs will come out like this.

If you didn't have the islands perfectly aligned at the center then you can just select the center line edge loop and press Alt+V to stitch the islands after the fact.

Let us continue this discussion in chat.

"make sure whatever "center" line parts of the UV are perfectly straight and centered at the .5 mark in the UV space"  This is the tricky part, the "?" in "1 2 ? profit".  Right now, the only tools to rotate UV to precise orientations are in GN, which has extremely spotty UV support anyways.  This is one of those things that is probably technically possible, but man, what a lot of hoops to jump through, just to get to your beginning point.

Followed by This is just a convenience thing, not 100% required. meaning you don't have to do this. This just means you won't have to stitch the maps together after the fact.

Sorry, I'm not trying to judge you.  This is a valid technique, to almost get there; the fact that it's hard to get there all the way, precisely, is Blender's fault, not yours.  Although doing some more research, we can get there by enabling "snap to midpoint" on the Stitch operation.  (However, if we don't, Stitch won't fix errors in our pre-existing rotation.)


text:
Any way to transfer a UV map to a texture or SVG?
Maybe I'm just using the wrong search terms...
I want to paint some textures using an external program (shocking, right?). To do so, however, I need to know where to paint.
Is there any way to either stroke an SDS1,2 UV wireframe onto a texture, or, better, export the UV wireframe as an SVG? (Ideal would be if only selected geometry is exported, since in my use case I only need to paint on specific parts of my object. But there are relatively easy ways to figure that out from the entire wireframe, so it's not a huge issue if I can only export everything...)

1 "Export UV" doesn't preserve SDS2 outlines. It's not entirely clear if this matters, but I suspect it does?
2 Subdivision Surface.

In the UV editor go to the UV > Export UV Layout menu item. If the side panel in the file selector isn't visible, click 'N' to show it and you can then select SVG under Format to save in SVG format.

@JohnEason you're absolutely right. You should provide this solution as an answer to the question.

The above link to an earlier answer is somewhat out of date now because it's for a much earlier version of Blender! The question was closed before I could format an answer properly.

Yike! That extracts as an image? I'd assumed it dumped the actual coordinates to e.g. a text file .

@JohnEason, that doesn't preserve SDS outlines, though. Are those representative of the actual UV used by an SDS, or are the "lies"?

No It's purely an image of the UV layout as shown in the UV editor window. As far as I know there's no way of dumping the coordinates unless you start writing a Python script to do it. I've no idea what you mean by 'SDS'.

@JohnEason, SubDivision Surface? And the problem is it isn't "as shown in the UV editor window"; the editor takes the SDS modifier into account, but Export UV doesn't.

Ah! I see. I very rarely use the UV editor so didn't realise that.

@Matthew How could be Subdivision modifier taken into account in the UV Editor? Can you share your screen? I can't even imagine how it could be visually/geometrically done. https://imgur.com/zGRXLTP ... Thank you

@vklidu, I could've sworn I saw a difference in island edges, but apparently not. It definitely makes a difference inside, however. Just compare Sue (default UV will suffice) with and without SDS applied.


text:
How to non-destructively fill holes after sweep?
I have a complex profile (think 'crown molding') swept around a complex, closed profile curve. How can I non-destructively (i.e. without converting the object to a mesh) fill the (planar) holes left behind?
Here's a sort of sample of what I'm dealing with:

I need to fill the top and bottom to get something bowl-like. I can't just fiddle with the profile curve because my real sweep curve does not have constant radius and extending the profile will create degenerate geometry.
Note: I did sort-of figure this out; the "Fill Mode" (under Shape) does what I want... but requires that the sweep curve is closed. Since my (complex) sweep curve is symmetrical, I was using a mirror modifier to generate half of it. If I do the mirror manually, I can use Fill Mode, but then I have to be very careful about maintaining the symmetry. So, is there either a way to force symmetry of a closed curve, or some other way to make this work while using a Mirror modifier?

You can Mirror  a filled cyclic curve, (half of which you don't need) and bisect it in the modifier. That still works. If you follow up with Decimate (Planar) and a Weld, you can bevel and subdivide the resulting solid.  If any of that is good enough for your case, can build it into an answer. It depends how much your profiles are prone to self-intersection, etc.

@RobinBetts, I don't think that lets me use a curve as the bevel profile, though? I originally got into this mess because the my profile was too complicated (and needs to be numerically precise) to model otherwise. OTOH, Mirror w/ bisect followed by Weld might work as long as the sweep curve crosses the mirror plane with the right tangency (easy) and has some junk on the side that gets trashed. Offends my sense of tidiness, though.

Okydoky ... looks like it might be GN.  Rims always planar, starting with a mirrored open curve? Are there any other boundary edges, apart from the ones you want to fill?

@RobinBetts, correct, and no. Thanks! I don't have time to review your answer now, but I'll try to take a look tonight.

Here's a first shot at a GN modifier that modifies a 2D mirrored curve-path with a provided 2D curve-profile. It returns a capped sweep of the profile around the path.
There's one sub-group:

..which fills a mesh-loop. Below is the whole modifier:

As soon as a curve is assigned a constructive modifier (including Mirror,) it secretly becomes a mesh, as far as Blender is concerned. So, although you can still edit the curve above the modifiers, it has to be converted back inside the GN group. That's why the input is a 'Mesh Loop'.
This group  is quite clunky.. it just generates separate mesh-caps to fill planar boundaries top and bottom of the sweep, and glues them on.

It's likely this doesn't exactly meet requirements.. go ahead and break it, and call back.

Okay, I tried this with my real geometry, and... well, it seems to not work so well if the bevel curve is a bezier (try with the default bezier, rotated 90° so it's up/down rather than in/out after the sweep). It seems to be making a sort of 'zipper' alternating between the correct points and the points halfway along the bezier segment from the end. Other than that, the approach seems reasonable. Sure seems like something that ought to be built-in, though.

Hi @Matthew ! Thanks for having a look! Your Default Bezier problem reveals that non-poly curves come into GN un-evaluated, ready to have their poly-approximation made inside the modifier, irrespective of whatever you've set their Viewport and Render U resolutions to. So the incoming curve has only 2 'points', both endpoints, and selection by endpoint doesn't work. TL,DR;  I'm pretty sure a fix is to re-state the U resolution requested in the curve's Data > Shape panel, like this. I'll update the answer soon.


text:
Any way to un-subdivide bare edges (or not subdivide in the frst place)?
So, I'm fiddling with cloth sim. Which means, of course, I need lots of faces. I'd prefer to get them via the subdivision modifier so as to not degrade my ability to tweak the original mesh.
I also need to use sewing. Unfortunately, subdividing the bare edges used for sewing makes sewing behave poorly. (Basically, because they have been subdivided, the sewing edges are not pulled as tightly as they should be.)
Is there any way to either subdivide faces¹ only, or to collapse only the bare edges after the fact? (Even better, is there any way to add new edges between midpoint vertices that were connected by bare edges at both endpoints?)
Here's an illustration:

Faces are shown in beige. Note that there are only two faces, which are connected by a pair of bare (not associated with any face) edges. I'm trying to get rid of the vertices circled in red, either by not creating them in the first place, or by dissolving all vertices with exactly two connected edges. Ideally, subdivision would also create the edge circled in green².

¹ Pedantically, it would be more accurate to say "only edges which belong to one or more faces", which is to say that bare edges should not be subdivided.
² For every closed edge loop ABCD where AB, CD are bare edges and AD, BC are non-bare edges, add a new edge from mid(AD) to mid(BC).

I'm not sure if I understand what you mean by subdividing faces only... a face itself can not be subdivided without having the edges subdivided which build the face. Or do you mean without smoothing the shape? Like what the Subdivision Surface modifier does when switching to Simple option instead of Catmull-Clark?

@GordonBrinkmann, maybe "only edges that belong to a face" makes more sense?

I can get you "better" with geometry nodes pretty simply, but using GN in this way means that you will no longer have valid vertex groups (for later use in a cloth modifier, perhaps.)  Do you need vertex groups for the follow up?

@Nathan, it's likely I'll need pinning groups, yes. Although I'd be interested to see a GN solution, because I couldn't figure it out.

You might consider adding GN tag and some info to being open to that (as well as requiring VGs) because there are others here that are more skilled with GN than I am, but might not deal with the q otherwise.  If you need VGs, I'm loathe to leave an answer that won't meet that criterion, but here's how I'd do it without worrying about them: https://imgur.com/a/ovO7szu


text:
Bands along pipe curve (or how to get radial coordinate of curve in shader node)?
So, I have this... idea I want to try for creating stylized fur. However, in order for it to work, I need to be able to distribute random lines along a hair.
I'm pretty sure I can figure out the randomization and translating it into color. What I'm missing is how to get the position "around" the hair. (I need it in a shader node, obviously.)
Given a curve-with-thickness, it's natural to think of it as having a cylindrical coordinate system, $(r, \theta, z)$. I can get $r$ and $z$ easily enough; they are 'Thickness' and (very odd choice of name) 'Intercept', respectively, from a 'Curve Info' node.
How do I get $\theta$?
Alternatively, how can I create a 1D noise texture along hairs where the stripes follow the hair curve?

Ignoring the "random lines" bit (as noted, that's easy if I can get θ), say I was trying to make hairs that look like (the outside of) this white-stripe-on-blue (without the black markings) wire:

Obviously, a color map that maps $[0, x)$ to white and $(x, 1]$ to blue, for a suitably chosen $x$ (eyeballing, I'd say $x ≈ 0.2$) fed by a Math node to scale $\theta$ to $[0, 1]$, would do the trick... but I need $\theta$.


text:
How to shade a mesh according to UV distortion / mesh size?
I'm trying to create a reasonably-accurate article of clothing for a character. Unfortunately, cloth simulation is... very challenging for this particular case, and while I am using some simulation as a guide, I think what I really need to do is manually model the clothing in its 'final' state.
The problem is getting the folds to be the right size.
Because this is clothing, the UV unwrap is theoretically an exact representation of the 'neutral' state of the cloth. (In fact, my reference simulation starts out as a 2D mesh.)
What I want is a way to shade the mesh based on the difference between its UV map and its 3D geometry. What I'm imagining is computing, for U and V independently, the difference of the UV derivative (times some scale factor) and the 3D derivative and mapping that to a color.
To try to describe this better, consider a UV map that is a regular, square grid, and a cylinder whose circumference equals its axial dimension. With appropriate scale factor, the derivative difference would be zero everywhere. If I grab just the top vertices of the cylinder and move them outward along the cylinder's axis, those faces would be stretched relative to one dimension of the UV map. If I grab one 'column' of the cylinder's vertices and move it away from the axis, those faces would be stretched relative to the other dimension of the UV map. If I instead moved them toward the axis, they would initially be compressed, but at some point they would have the same size, and the shading would allow me to estimate that point.
Now consider a simple square. If I stretch or shrink it in either direction, the shading would show that. However, if I move one edge to make a rhombus, the shading would indicate that there is no stretching or compression.
Is there any way to do this?

WARNING: Calculus ahead
In case the above is unclear, and/or to clarify that what I'm trying to do is at least theoretically possible, here's a very technical explanation.
Imagine a three dimensional representation of a garment. In principle, this garment consists of one or more panels of fabric which notionally have two dimensional forms. In fact, due to translation-agnosticism, we can ignore the "or more" and focus on the single-panel case.
Therefore, there exists a transformation of our mesh which is two-dimensional, and for which the mesh's world coordinates are exactly the coordinates expressed in terms of a hypothetical sheet of fabric from which the panel was cut. (Modulo a translation transformation, but since translations don't affect our desired function, we can ignore that.) Now, we need a way to encode these 'fabric-space coordinates' into each of the mesh's vertices. For simplicity's sake, let us say that the 'fabric-space coordinates' are exactly the texture (UV) coordinates, modulo a translation (which is irrelevant) and uniform scale (which can be accounted for with a trivial modification).
In this state, our desired function has a uniform value of $(1, 1)$. Moreover, we can define the function as follows:

For a point $p$ on the mesh having fabric (texture) coordinates $(u, v)$, let $i$ represent a vector such that the fabric (texture) coordinates of $p + i$ are $(u+t, v)$.
Let the first value of the function be defined as $lim_{|i| \to 0}\frac{|i|}{t}$.
Let the second value be similarly determined in terms of $j$, where the fabric (texture) coordinates of $p + j$ are $(u, v+t)$.

For our flattened panel, this produces a uniform value of $(S, S)$, where $S$ is a scaling constant that represents the transformation from fabric coordinates to texture coordinates. (We could additionally account for rotations and non-uniform scaling, but as my use case does not need to do so, let's keep things simple!)
Now, if we take our flattened panel and stretch (or compress) it in the direction of the warp, only one of the function's values will change, and, assuming the transformation is uniform, the new value will remain constant at all points. Similarly, scaling along the weft will affect only the other coordinate. Translations and rotations will have no effect.
More generally, when we now deform the mesh so that it is again three dimensional, the function values (adjusted for $S$) will specify the amount by which the hypothetical fabric has been stretched or compressed along the warp and weft. Visualizing these from the specified function is straight-forward.
It's worth noting that modeling is not the only application for this; materials that change their properties when stretched (e.g. latex becomes more transparent) might also use this.

I stopped here: "...  a cylinder whose circumference equals its radius". How is that possible?

@Leander, oops! I meant "height"! Thanks! (Height? Length? Axial dimension; let's go with that, it seems less ambiguous.)


text:
How do I apply input material to output geometry?
I have a curve that has a geometry nodes modifier applied. I noticed that the resulting mesh has no material. What do I need to do so that setting the material on the input object sets the material on the generated geometry?
Note 1: I can get this "working" using a material input node, but to set the material for this particular object, I would have to go digging into the modifier properties. That's different from how I would change the material for any other object. I very specifically don't want that.
Note 2: this seems to be a duplicate of "Set Material Index" node not working, but there is no working answer there.
Just like that poster, I tried the Set Material Index node, and it doesn't seem to be doing anything.
I'm using Blender 3.5.1.

(Note that the viewport is in Material Preview mode.)

Please add a blend file showing the minimum number of nodes so that we can see what the problem is.

...just add a Set Material node.

@quellenform, and how do I get the material to be set? Specifying the material in the node is unacceptable. Specifying it as a node input is undesirable, as stated in the question. Please show an example of this approach working.

This can only be solved with Group Inputs: https://i.sstatic.net/SoR1y.png If you create a geometry in Geometry Nodes, it must also be assigned a material in Geometry Nodes. There is only one special case, how you can avoid this: https://blender.stackexchange.com/a/279168/145249 Here I take over the material previously assigned to the object with a trick, but even this has its limits.


text:
How to aggressively smooth a sculpt along a stroke?
So, I have this sculpt that was created by some very aggressive carving:

Unfortunately, as can be seen there is a lot of bumpiness along the axis of the sculpt. I'm trying to reduce this, but smoothing doesn't do a very good job, and does significantly change the cross-sectional profile, which I don't want. Everything else just seems to move the bumpiness in or out.
How can I crush the bumpiness, but only along a stroke? Roughly, I want to go from having ridges/"waviness" perpendicular to the long axis to having ridges parallel to the axis while changing the overall shape as little as possible.

hello, what does it give if you go into Edit mode, select all and top bar > Vetex > Smooth Vertices?

@moonboots, same as the Smooth tool, I expect; because it has no directionality, it'll mess up the profile. I think what I need is a smooth tool that gives weight to the neighbor vertices according to their angle relative to the stroke.


text:
How to constrain motion tracking to 3D gemetry?
I previously did motion tracking on a handful of frames and got an acceptable solution.
When I added markers to additional frames and asked Blender to compute a solution, the camera locations for the previous frames changed dramatically.
I have some geometry that matches the reference images. How do I tell Blender that certain markers should map to fixed 3D locations? (Is there some other way to prevent Blender from completely wrecking whatever clip-to-scene alignment I've already done?)

I don't think this is possible, at least not without Python. One reason being, a camera tracking can't know about the absolute distance between trackers, only the relative positions.


text:
Any way to show distance between two surfaces (meshes)?
I'm trying to reconstruct a mesh as an SDS, and, frankly, it's a pain.
Is there any way to visualize the distance between two meshes? What I'd really like is something that would compute the shortest path from every vertex of one mesh to the closest point on the other mesh and display that as a "heat map" so I can tell how closely I'm approximating the original.
I know there's probably a way to sort-of do this with displacement baking, but that's way too slow to be useful. I need something more like a real-time version of this, but one that can have much lower resolution.
Is it possible to calculate the distance between the vertices of two objects in Geometry Nodes? seems relevant, but it's not solving quite the same problem. That question asks about the distance between corresponding points. I just want the closest distance between two surfaces (which have very different meshes).
Note: I also asked about automatic ways to Fit subdivision surface to existing mesh?, but it seems there aren't any.

Does this answer your question? Is it possible to calculate the distance between the vertices of two objects in Geometry Nodes?

@Chris, no, or at least it isn't working. For one, there is no "Distance" geometry node.

the distance node is a vector math node...then choose distance

@Chris, ah. On closer inspection, however, while the information there is relevant, I don't think it's trying to solve the same problem. That question wants the distance between corresponding points, not the closest distance (which would give a very different result!).

ok, i didn't try that out, but if you choose "nearest" in the transfer node, wouldn't that be the result you want?

@Chris, I think I have it sorted. Still writing it up; please wait .

The answer in Is it possible to calculate the distance between the vertices of two objects in Geometry Nodes? is useful, but not trying to solve exactly the same problem. It's also missing a critical step that threw me off until I stumbled on a video that bothered to mention it.
Here's the almost-final node setup I ended up using (note that this is a geometry node graph on the left, shader node graph on the right):

There's one critical step, which is that the geometry node's notion of attribute names is not the same as the shader node's. To address this, in the Modifier Properties, look in Output Attributes. When you first create these node graphs, the output node will show in this list with its geometry node name in uneditable text on the left, and an empty text field on the right. This allows the output attribute to be assigned to an existing attribute (e.g. vertex weights, or if it was a vector, UV coordinates), or to a new attribute. To do the latter, type a name in the text field, which should cause the pop-up to show the name with a '+' icon in front of it. Click this to create a new attribute.
One note: I took this screenshot before realizing that Blender unfortunately does not produce signed distances (at least, by default). Thus, the shader Map Range should be from 0 to whatever value makes sense depending on your needs. (For me, since I'm trying to match an existing surface, I want a fairly small value, although the 0.01 shown might be a bit much; 0.05 would probably be more reasonable. But it will depend on how picky you are and the scale of your models.)


text:
How can I scale instances to hair lengths?
(Using Blender 3.3)
Since particles seem to be deprecated, I am trying to use hair curves to allow me to precisely position instances on a model. (Consider feathers, as an example.) Specifically,  want to position an instance at the root of each hair, using the hair's orientation and size.
Right now, I have:

This works fine for position and orientation, but I can't figure out how to correctly map from the length of individual hairs to per-instance scale.
I'm testing with a single hair, 0.1m long. Both Spline Length and Spline Parameter are giving different results compared to plugging in 0.1 as a constant scale. (As far as I can tell, both are in fact producing 0.) Curve Length seems to give the correct result, but of course that's only useful if I have exactly one hair.
How can I get the length of individual hairs in a way that I can plug into instance scaling?

Please add a screenshot of your node tree, or better, share your blend file with us: https://blend-exchange.com

Since you don't want to share your blend file and don't provide a simplified example, I can only make assumptions...

To use the length of a spline when instantiating objects, while using Curve to Points, you would have to capture the spline length with Capture Attribute beforehand, and then use this value for scaling, because as soon as you have converted the curve into points, there is no value for a spline length anymore:

What the actual... I'm going to have to try this again in my real model (I already tried exactly this, IIRC). Apparently, not only does 'grow hair' not work when the geometry node is applied (not entirely shocking), it also doesn't work on 2-point hairs, at all, unless "scale uniform" is enabled.  It's possible that "quirk" is solely responsible for not figuring this out myself...


text:
How do you align geometry instances to mesh tangent?
I'm trying to add objects (feathers would be a good example, or similar to How to Tweak Dragon Scales Scaling from a Particle Emitter) to a very organic shape, and I'm trying to keep my workflow as procedural as possible so I can go back and easily change things (density/count in particular). Since I need a semi-random but "uniform" (read: not clumpy) distribution, it looks like geometry nodes are the only feasible option.
Now, I had this mostly working with a particle system, using the mesh tangent as the base object alignment. But... clumpy. So I'm trying to use geometry nodes with Poisson distributed points instead, which works well as far as not clumping, but now I can't figure out how to apply the proper rotation to the instances. How do I replicate the rotation that I achieved with particles?
(Basically, this, which has no answers. )
I'd be interested in both:

How to achieve this only using geometry nodes.
How to automatically generate an appropriate vector-field texture.

If it helps, the logic to do this for particles is in psys_interpolate_face, specifically, the logic that computes utan (u⃑) and vtan (v⃑). (Don't worry about phase; I'm not sure I actually need anything but u⃑ for my immediate project, and I'm pretty sure I can get the u⃑ and v⃑, I can figure out on my own how to deal with the phase.)

I can't share my "real" model, but here's a quick-and-dirty example (using particles to show desired alignment):

The UV unwrap for this looks sort of like a bow tie. Note how the pyramids are not just pointing down, but are describing an arc that is more extreme toward the back (left, in this image) of the sphere and reverses at the mid-line in the front of the sphere (not visible in this image).
The goal is for the "top" of the pyramids to always point away from the sphere (i.e. in the direction of the mesh normal), while the long "tip" points in the direction that corresponds to the texture u⃑.

Does this possibly help you? https://blender.stackexchange.com/q/272870/145249

Let us continue this discussion in chat.

Probably related ... if you look for some manual adjustments based on texture used in GN – paint texture by flowmap add-on

This seems to work for me...
Texture-based Approach
Generating the Texture
First, we need a texture that encodes the u⃑ tangent vector. Assign a material to the object for which the tangent texture will be generated and go to the "Shading" workspace to edit the material's nodes. We'll need the following:

Input ⏵ Tangent
Texture ⏵ Image Texture
Converter ⏵ Map Range
Shader ⏵ Diffuse BDSF
Output ⏵ Material Output

The "Material Output" node should already be present. Any other existing nodes can be deleted. Note that the "Image Texture" node is only present so that baking will know what to target; it does not need to be connected, however the Color Space should be changed to Non-Color. Be sure to select the intended image target in this node to avoid a confusing error. If you don't already have an image, you'll need to create one.
The other nodes should be connected as follows: Tangent:Tangent to Map:Vector, Map:Vector to Diffuse:Color and Diffuse:BDSF to Material:Surface. Also in the Map Range node, the input range should be (-1,-1,-1) to (1,1,1), and the output range should be the default (0,0,0) to (1,1,1). This is needed to convert the signed tangent vectors to unsigned color components. The Tangent node also needs the mode changed from the default Radial to UV.
Your node graph should look something like this:

At this point, the viewport should be giving a reasonable preview. Here's what it looks like for the sample project in the question:

Now we need to "bake" this. In the Properties panel, select "Render Properties" (television icon). Set the engine to Cycles. If you have a supported GPU, you can set the Device to GPU Compute.
Scroll down to Bake and expand the section. Note the "Bake" button at the top of the section; we'll come back to that shortly. Set the Bake Type to Diffuse. Under Influence, turn off Direct and Indirect (we don't want lighting being applied!). Make sure the Output Target is Image Textures. Go back and hit the Bake button and wait a while. When it's done, switch back to the UV Editing workspace and save the image.
Here's what we got for the sample project:

(For some reason, probably related to color spaces, the version seen here is significantly darker than as seen in Blender, or even the above preview. The gradients are still visible, but don't be alarmed if you see a similar difference in lightness.)
Orienting the Instances
To add the instances, add a Geometry Nodes modifier and switch to the Geometry Nodes workspace to edit it. We'll need the following nodes:

Input ⏵ Group Input (should already be present)
Output ⏵ Group Output (should already be present)
Point ⏵ Distribute Points on Faces
Instances ⏵ Instance on Points
Input ⏵ Object Info
Texture ⏵ Image Texture
Utilities ⏵ Map to Range
Utilities ⏵ Align Euler to Vector

Connect the Group Input's Geometry output to the Distribute Points' Mesh input. We're going to assume the objective is to get semi-uniform spacing, so change the Distribute Points' distribution from Random to Poisson Disk. Adjust the Distance Min and Density Max to taste. (Unless the goal is a small number of sparse instances, I typically find it necessary to crank the Density Max to around 10k-50k. Don't worry, this only controls the number of candidate points; the Distance Min will reduce this number significantly. Be warned, however, that going over about 100k will result in Blender having to spend many CPU cycles deciding which of the many candidate points to keep.) If using a vertex group for instance density, connect the Distribute Points' Density Factor to an empty output port slot on the Group Input. This will cause a new line to appear in the Modifier Properties for the object. The offset-cross icon (Input Attribute Toggle) can be used to toggle this between a constant value and various attributes such as vertex group weights. Clicking the input field will allow a vertex group to be selected.
Connect the Distribute Points' Points output to the Points input of Instance on Points. In the Object Info node, select the object to be used as the instances, and connect the Geometry port to the Instance on Points's Instance port. Connect the Instance on Points's Instances to the Group Output's Geometry.
At this point (no pun intended) our instance objects should be visible, but incorrectly oriented, and possibly with an unreasonable scale. The last can be adjusted in the Instance on Points node.
To get the scale, first ensure that the correct image is selected in the Image Texture node. Connect the Vector input of this to a new output port on the Group Input node, then, in the Modifier Properties panel, connect this to the object's UV map (see notes on instance density for detailed instructions). Connect the Color output of the Image Texture node to the Vector input of the Map Range node (which first needs its mode changed from Float to Vector). The input range should be the default (0,0,0) to (1,1,1), and the output range should be (-1,-1,-1) to (1,1,1). This should be familiar; we're reversing what we had to do to go from vector space to color space during baking. Connect the Vector output of the Map to Range node to the Vector input of the Align Euler to Vector node. Connect the Rotation output of the Distribute Points on Faces node to the Rotation input of the Align Euler to Vector node.
Your node graph should now look something like this:

However, our instances may not be correctly aligned. Fixing this is a matter of trial and error fiddling with the input axis of the Align Euler to Vector node. This is dependent on how your UV map is oriented and how you want your instances to be oriented. One trick that will help is to temporarily bypass the Align Euler to Vector node and connect the Rotation output of the Distribute Points node to the Rotation input of the Instance on Points node, then rotate the instance object to point along the normal vector. (Don't forget to apply the rotation after fiddling!)
A Geometry ⏵ Join Geometry node can be used if the input surface is to be retained. Some math and/or random nodes, and possibly another Map to Range node, can be used to adjust the instance scale and/or add some random variation. Hooking these up is left as an exercise for the reader.
Here's my final result, using the test project:

Note that I wasn't trying to match the original scale or density, as those are easily tweaked. The objective was rather to match the orientation, which this seems to achieve satisfactorily. Note also that this render was done with a Join Geometry node that is absent in the downloadable .blend version.

Well solved! ...you did not need our help ;-) +1

btw: I don't know what's wrong, but some text is not displayed correctly. What characters did you use there? https://i.sstatic.net/ZlIzT.png

@quellenform, I wouldn't say vklidu didn't help, I definitely copied bits of that setup... and I wish that answer hadn't been deleted. Also, that's just a right-pointing triangle, used as a menu separator, because arrows (→) line up horridly for me, and I'm not a fan of the ASCII -> representation .

As you can see from the comments, you don't want to show us a screenshot or your blend file, so unfortunately the answer is a bit short and theoretical:

Add the modifier Geometry Nodes, get your mesh and scales with Object Info, pre-transform the scales in local space with Transform, use Distribute Points on Faces and transfer the generated rotation to the Instance on Points node.

This aligns the instances to the normals, but not the tangents.

@Matthew Correct. Because here the tangents are completely missing. I would have liked to help you more, but it was hard to get concrete information out of you, so I had to leave the field to others ;-)

So... I'm probably late for this one, but since I haven't seen this answer elsewhere, I'll give it a shot. I won´t deal with orientation here, first because others have already answered you that, and secondly because the main issue, as far as I see it, is getting the tangent inside Geo Nodes.
So this answer solves the issue of getting the tangent exclusively through Geometry Nodes, as far as possible. The only thing that you need is a valid UVMap attribute.
A bit theory

Tangent and binormal, as defined through Mikktspace, are basically the V and U coordinates converted to world space. For any given point, the direction from this point's position to the position (both in world space) of the closest point in the V direction (In UV space) is the Tangent direction. Get the same thing for the U direction and you have the binormal.
Also: given two of Normal, Binormal, Tangent, the third one will be the cross product of the first two.
Sampling the UVs
That being said a first setup that will actually get the Tangent is this one:

Here the UVs are sampled in order to get the closest position in world space following the V direction and I get the direction. This solve most cases, but in some borders where advancing in the V direction doesn't sample anything we might need to sample the other directions as well. In this case you cascade the checks for the directions with switches and do a cross product with the normals when you're checking agains the U direction (because that is technically the binormal).

And this is what things align to:

This one is actually easier to read in the file, so here is the example file:


text:
My surfaces are cut by blues lines, how to merge these sub surfaces together?
I have imported a file that someone gave me and it appears that all the surfaces are cut in smaller surfaces that touch each other.
These "cuts" are visible in blue in the image below:

Edit clear the sharp edges as suggested by Harry does get rid of the blue line in the editor but still does not merge the surfaces.
If I (1) select an vertex at on of those interface:

And (2) move it with G, here is what I see: A hole

How can I fix this? I would like to glue the two surfaces together.

There is nothing to fuse. Those blue lines are just marked as Sharp edges. Just select everything with A and then Ctrl+E >Clear Sharp to remove clear sharp edges. https://blender.stackexchange.com/questions/40292/what-are-the-light-blue-lines-on-my-imported-objects

Select one of the edges that are marked as sharp (blue)
Expand the selection to cover all of them by pressing ShiftG -> "Sharpness"
Merge close vertices through m -> "by distance"
adjust the distance so that most vertices are combined
Manually merge remaining vertex pairs by selecting them and pressing m -> (option)

The first two steps make sure we only merge the points that are on the seam.
If you want smooth shading across the seam, you can still clear the sharp mark afterwards like @Wiseman said.

I tried this solution. To help the merge by distance I also Subdivided the edges to create closer vertices in order to be able to then chose a smaller merge distance. This method works well but unfortunately the shape I have has too many different scales that it is had to come up with a good merge distance that does not introduce artefacts.

If the shapes themselves are uniform enough you can try hiding the other regions before doing that. However bad topology will always require extra effort to fix or work around.

They are "Marked as Sharp", not separated. If you wanna remove them, select the mesh and right click "clear sharp" but that sometimes makes the mesh awkward looking.


text:
Updated Blender 3.1 Voxelize Python Script Question
I've been following CGCookie's Voxelize Art tutorial on YT and everything has been smooth sailing until pretty much the last step. The tutorial was made using 2.8 so I obviously some of the code has been updated/changed since, but since I'm learning I'd like to know how to fix it. I'm adding the Octree Depth panel that pops up once it Voxelizes your mesh, to make it have more or less resolution and I get this error message:
AttributeError: 'OBJECT_OT_voxelize' object has no attribute 'voxelizedResolution'.
Not sure if it makes sense out of context since these are specific commands. I'm still new to Python and am not sure what I'm missing here. What do I defy the attribute as and where to place it in the text editor? I've included a screenshot for reference. Any help/explanation would be great. Thank you!
        import bpy
from bpy.types import (
    AddonPreferences,
    Operator,
    Panel,
    PropertyGroup,
)
from bpy.props import (IntProperty)

class OBJECT_OT_voxelize(Operator):
    bl_label = "Voxelize"
    bl_idname = "object.voxelize"
    bl_description = "Converts any object into a voxel mesh"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_options = {'REGISTER', 'UNDO'}

    voxelizeResolution: bpy.props.IntProperty(
        name = "Voxel Resolution",
        default = 6,
        min = 1,
        max = 15,
        description = "Octree Depth used in the Remesh Modifier",
    )

    @classmethod
    def poll(cls, context):
        return context.active_object and context.object.select_get() and context.object.type in ['MESH', 'CURVE']

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        #set source and create target
        sourceName = bpy.context.object.name
        source = bpy.data.objects[sourceName]

        bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'})
        bpy.context.object.name = sourceName + "_Voxelized"
        bpy.ops.object.transform_apply(location=False, rotation=True, scale=False)
        bpy.ops.object.convert(target='MESH')

        source.hide_render = True
        source.hide_viewport = True

        targetName = bpy.context.object.name
        target = bpy.data.objects[sourceName]

        #turn the target object into blocks
        bpy.ops.object.modifier_add(type='REMESH')
        bpy.context.object.modifiers["Remesh"].mode = 'BLOCKS'
        bpy.context.object.modifiers["Remesh"].octree_depth = self.voxelizedResolution
        bpy.context.object.modifiers["Remesh"].use_remove_disconnected = False
        bpy.ops.object.modifier_apply(modifier="Remesh")

        #transfer UVs to target
        bpy.ops.object.modifier_add(type='DATA_TRANSFER')
        bpy.context.object.modifiers["DataTransfer"].use_loop_data = True
        bpy.context.object.modifiers["DataTransfer"].data_types_loops = {'UV'}
        bpy.context.object.modifiers["DataTransfer"].loop_mapping = 'POLYINTERP_NEAREST'
        bpy.context.object.modifiers["DataTransfer"].object = source
        bpy.ops.object.datalayout_transfer(modifier="DataTransfer")
        bpy.ops.object.modifier_apply(modifier="DataTransfer")

        #reduce faces to single color
        bpy.ops.object.editmode_toggle()
        bpy.ops.mesh.select_mode(type='FACE')
        bpy.context.area.ui_type = 'UV'
        bpy.context.scene.tool_settings.use_uv_select_sync = False
        bpy.context.space_data.uv_editor.sticky_select_mode = 'DISABLED'
        bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='FACE')
        bpy.context.scene.tool_settings.transform_pivot_point = 'INDIVIDUAL_ORIGINS'
        bpy.ops.mesh.select_all(action='DESELECT')

        count = 0
        while count < 100:
            bpy.ops.mesh.select_random(ratio=count + 1, seed=count)
            bpy.ops.uv.select_all(action='SELECT')
            bpy.ops.transform.resize(value=(0.001, 0.001, 0.001))
            bpy.ops.mesh.hide(unselected=False)
            count +=1

        #return to previous context
        bpy.context.area.ui_type = 'VIEW_3D'
        bpy.ops.mesh.reveal()
        bpy.ops.object.editmode_toggle()

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(OBJECT_OT_voxelize.bl_idname)

def register():
    bpy.utils.register_class(OBJECT_OT_voxelize)
    bpy.types.VIEW3D_MT_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_voxelize)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

if __name__ == "__main__":
    register()

blend file:

For future reference, always post code you need help with directly in the question, don't use screenshots. It's easier to troubleshoot and answer your question if we can copy your code and paste in into our own Blender text editor, can't easily do that with an image!

oops deleted my answer. crantisz spotted it first XD

thank you! I haven't posted here before, I'll be sure to copy paste next time.

You just mess up the names. Here is voxelizeResolution
voxelizeResolution: bpy.props.IntProperty(
    name = "Voxel Resolution",
    default = 6,
    min = 1,
    max = 15,
    description = "Octree Depth used in the Remesh Modifier",
)

And here is voxelizedResolution:
bpy.context.object.modifiers["Remesh"].octree_depth = self.voxelizedResolution

Hi @crantisz , thank you for your help. Sorry, I've been trying to use your code corrections and run it but I'm still getting the same error. I edited my question to include the code as it's too many characters to fit in here. Any help would be greatly appreciated.