text:
How to Bake High Poly Object Details (Shape) to the low poly object?
I am creating game ready assets using Blender. I heard that it is a good practice to create both the high poly mesh and the low poly mesh for the asset, but instead to using a high poly mesh, one should bake the details of the high poly mesh to the low poly mesh. But I don't know the procedure of doing that.
The Problem
Here, I wish to create a piece of deformed wood in blender. So, I created a low poly cube and gave it a basic shape of a wood (no deformation)

Now, I created a high poly mesh and subdivided it a few times and then added a displace modifier with a cloud texture with 0.010 strength, which gave it a deformed kind of shape. Then I manually deformed it a bit using proportional editing which gave me this result.

Now, is there any way to bake these details of the high poly mesh to the low poly mesh and if not, then how can I give that low poly mesh a deformed shape (like the high poly mesh), without too many polygons?
Just a side note, I use Unreal Engine for game development.
EDIT:
I tried using the bake normals option in blender but it is producing several artefacts of mostly red, green and purple colours.

Those 'holes' in the lower right corner are causing artefacts in my low poly mesh. Is there any way to solve that? Otherwise the distorted portions are appearing fine.
Example of its Use

@hatinacat2000 The requested .blend file

Result
I think @Christopher Bennett's method is the best. I was able to get this result using it. It's only 306 faces. There is a shading issue there, but it's just me bevelling wrong, leading to a triangle. Otherwise, its perfect. 306 faces is much better than 5000.

It's absolutely possible - however it might be too much to write as an answer. I recommend watching some tutorial videos on the process such as this one - https://www.youtube.com/watch?v=BOYRCI-dtjU - and for more detail on the process of normal map baking try this - https://www.youtube.com/watch?v=TYouRv2td6M. Unfortunately the first one is for pre-2.8, but the process is mostly the same. Try finding one that has what you need but is more recent.

So, from your comment, I guess the process to do this is to bake the normal map.

Yeah, the gist of it is that you make a high poly and a low poly of the same model, make sure the two objects are in the same place, make sure the low poly is UV unwrapped, create a new image (2k should be sufficient -make sure to check the 32-bit float box) and add it as a new image texture on the same graph as your object's material (but not connected - it must be selected though). Then select the high poly object, then the low poly (so it is the active selection), then go to bake settings, pick normal as bake type, check "selected to active" and bake.

However, this process is not always as easy as it sounds. Sometimes differences in the size and shape between the two models in certain areas can yield ugly artifacts on the result. A way to overcome this is to use a "cage bake", which often helps, but is not flawless. Unless your bake is extremely simple, you may be in for a bit of tinkering and frustration, I'm afraid. My best advice is to find the best guide(s) you can and spend a while messing with it.

It's not really working, I even used a cage following Grant Abbit's tutorial, however there are some red and green lines in my normal map, resulting in artefacts.

See my above comment about tinkering and frustration. Unfortunately, it's a bit of an art to get bakes to come out properly. Sometimes you need to scale one of the models slightly, sometimes you have to increase or decrease the bake margin, other times you have to increase or decrease the ray distance. There are a lot of factors that go into making a successful bake. Trial and error is often the only way to get that final best result, I'm afraid. I wish I could advise you better, but I'm not exactly a pro at it myself.

Should I then create a new question for this artefact problem? Since, I cannot call my bake even near good.

Perhaps, but first I would recommend searching this site (or google in general) for the same question. It's a very common problem and there are a LOT of questions and answers about it. If none of them have solutions that fit your case, by all means, post it as a separate question.

See my last comment on voids that get baked when one object has a hole that the other object fills (a more accurate description of what I meant). You can get a correct normal map as long as there are no HOLES if you change the ray cast distance in your bake settings. You want it as low as possible without penetrating the other surface more than once.

just posting this so I can post the pic. Would it be acceptable to you to use a procedural texture to generate a "normal" from something like a noise texture?

Then you could bake that to a normal map from the texture.

Then, you can connect your baked normal back up, and mix whatever colors or effects you want (such as roughness) in the shader.

EDIT - Different approach...
Now that I see your usage example, I'm not sure how much this high poly, low poly business is necessary. Given the look, you can probably get away with minimal deformation. You can even delete the back faces that won't be seen, leaving a very acceptable number of faces.

Then you can either use the approach I outlined, or use another PBR texture to add even more detail.

EDIT 2 - Here's one more with a small bevel and smooth shading. Each object is 29 faces.

It gives a really nice detail to the model, although this doesn't serve my purpose, I think I will use this method to give it a nice texture by increasing the scale and the detail.

Yes, that is very very close, I think smooth shading and a bevel will help to get rid of that jagged edge.

I think that there are some shading issues in both the models due to the bevel. However, I fixed that issue by only enabling the bevel at certain edges which fixed the problem. I will try this method now.

Smooth shading can do that without the appropriate geometry. Also, I did a really dirty UV unwrap - I was aiming for speed, not accuracy. It is what it is. If you can afford a little more geometry, the shading can be better, if not, you may be better off with high-to low poly after all.

I was able to achieve a much better result, with a bit more geometry.

Please convert this into an answer by removing all your questions at least @ChristopherBennett

I have achieved a very good result of having only 170 faces, and a displace modifier with it.

From experience, I and others will tell you that normal maps work best for details like bumps and crevices. They work very poorly--are unsuitable--for baking a "high poly mesh" whose silhouette is noticeably distorted compared to the original. You are not going to get anything good from that.
What you are trying to do in this example is similar to attempting to make the default cube appear as a uv-sphere (much rounder) just by turning on "smooth shading" for its 8 vertices. The problem is not just how light interacts with the object on its surface (a huge problem in this example), but that the silhouettes will not be changed with a normal map.
If you make both meshes the same shape and sculpt wood grain into the high poly mesh, that is exactly what normal maps are useful for and you can get nice results in Blender.

So what exactly can I do to get that distorted shape into the low poly object? Do I have to add more loop cuts and use proportional editing ie. increase the polycount in the Low Poly Mesh.

You should always optimize your topology regardless of use-case. Your "high poly mesh" looks like it can be very few faces. What is this wood for? Will there be a lot of them in the scene?

It will be used in a lot of shacks in a post apocalyptic environment. So yeah, it has a bit of an use. I tried to adjust a lot of settings, like margin, cage, ray distance. But still. after applying the normal map, the mesh is looking very ugly at the sides where there are those distortions and my high poly mesh has a total of 146K faces, as of now. I'm editing my questions to show the problems which I am getting now.

If you want, you CAN bake the normals from the high poly to the low, and that normal map could make the wood look irregular if viewed at a very shallow angle. However, I am guessing that you want to lay these planks end-to-end and side-to-side, so the player will never see it. The effect on the top-bottom faces will work ok provided that either the high poly completely envelopes the low poly, or vice-vesa (else the void will get baked as an error)

So that means, that such irregularities in shapes will always result in artefacts. In that case, what is the optimal polycount for the low poly mesh to get such a shape? I am a kind of a perfectionist, so I don't want any problems in my mesh, even if the object is not important.

Also, can retopologizing the high poly mesh be an alternative?

I misspoke in that comment, it's hard to describe without relying on math jargon. Preferably, one object completely envelopes (contains) the other and the rays that are casted from one surface to the other are short enough so they hit every point on the other surface but do not penetrate more than once. It is all right if one does not completely envelope the other as long as there is no region where any ray will either fail to hit the other surface or punch through it more than once (a "hole"). Yes you can always retopo, your model is very simple, maybe you can reduce the number of faces.

Also, I'll bet your normal map is stretched. For the low-poly object, apply scale (Ctrl A) , select every edge, do Edge --> Mark Seams, then UV --> Unwrap. Bake again.

I tried every possible way to bake it, even used Substance Painter, but it still didn't work (Substance Painter showed even worse results than Blender). So, I think retopologizing the high poly mesh is the only option that I can use for this purpose. Also, what exactly should I bake from a high poly mesh to a low poly mesh if shapes isn't the thing that you should. For example, should I bake boolean cuts (if used in high poly mesh) to the low poly mesh, ie. only surface details.

attach the .blend file using Blend Exchange.


text:
Edge selection behavior, how to make it like Maya?
The Image clearly describes my problem with Blender, how can I change this to work like it does in maya? I have looked extensively in preferences, and I can't find anything.
I want box select to select all edge it touches, like it does in maya, Instead in Blender, only edges that are completely inside the box get selected

Do you need) to use box select? If you want the whole "side of edges" selected, just hold Alt and click the edge. If you already have edges selected that you want too stay selected, use Shift+Alt+Click.

I want box select to select all edge it touches, like id does in maya, Instead in Blender, only edges that are completely inside the box get selected.

Try pressing C, and scrolling the mouse to increase/decrease the selection size. It will select anything the circle touches when you click. Not quite the same as box, but it still handles multiple selections.

Recommend [edit] prior comment into question.

as Christopher says, it looks like edge loop (except it's not the same)

This is  absolutely true. Box edge-select does not fulfil the promise made in the manual: "Any item that lies even partially within this rectangle becomes selected." It is also inconsistent. Get-around: use 'C' circle select for non-colinear selections. Is this a reportable bug? Variants of the problem seem fairly common in the task-list already..

Thank you! I knew there was some inconsistency too, but I couldn't quite capture it!
At least I can rest somewhat knowing that the functionality isn't there at all. It would be great if this was toggleable feature

@Mikael as it happens, I find this 'error'  convenient, to the extent I hadn't noticed it until you raised the issue.  Personally, when I (rarely) use  box-select for edges, it is to select  aligned elements, not in a loop, If I want cross-members, too, I  use C.

source: Stack Exchange

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

sort: votes


text:
Rig affecting other meshes that I don't want to affect
I'm a beginner at rigging. And I have no idea what to do here.
So I rigged my model, and when I move the thumbs, it affects part of the head as well.
Screenshot:

Completely stuck here. Anyone got any tips?

Have you checked your object's weight painting by selecting your object and changing from whatever mode you're in (object, edit, pose, etc) to weight paint mode, selecting the problematic bone, and seeing if it has influence over the head part of your mesh?

yeah, no luck, it appears to be normal

Could you try uploading your blend file so others can help determine what's wrong?

Here my Andy robot has a headache. His head is being posed by his hand.

So we'll switch the mesh to edit mode, deselect everything, and choose the hand.r vertex group. That's the bone causing Andy's problem.

Then we'll click the "select" button

We see Andy's hand is selected, but so is a portion of the head!

We'll use c and the shift to deselect all the valid hand parts.

Then we'll click the "Remove" button to remove the selected head verts from the hand.r group

Now Andy's headache is gone!

Note: Andy is a model from imported from Poser.

Hello; I have tried doing this but it selects the hand only, not the head. I've uploaded the blend file above.

So in your case select the object Char_Torture_Glasses, go into edit mode as described and select bone.015 group and click Remove

ive tried doing it but it still doesn't work

You've got some really messy vertex groups. Since you have individual objects do this:

For each object:

remove all the vertex groups that don't belong to a bone in your armature.
remove all the vertex groups for bones that don't control this object

nvm: it worked, guess i was just being an idiot
had to remove bone.014 and 0.15

My other answer is more general and doesn't exactly address your specific problem. It looks like you need to watch a few videos on rig design and weight painting, but in the interest of helping you fix your current character let me offer you the following:
Here we have the object "Char_Torture_Head" selected in object mode. Notice there are many, many vertex groups we don't need, and the armature bones for the head, neck and shoulders are named "Bone", "Bone.003", "Bone.008", and "Bone.010"

Now I've renamed the armature bones "Char_Torture_Head", "Char_Torture_Neck", "Char_Torture_Shoulder.L", "Char_Torture_Shoulder.R". Blender automatically renamed the appropriate vertex groups. I then deleted all the vertex groups but those 4 from the head as shown below. Also, many cool features require left and right bones to have the suffix .L and .R to work correctly.

The glasses have the same problem, extraneous vertex groups.

The bones for the glasses already have meaningful names so just delete the extra groups.

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


text:
Using prop_search on node groups list changes order of list
I'm developing an addon which performs operations on Geometry Nodes node groups and I noticed that when I use prop_search on the node group list, the one that I select is moved to the top of the list, which is not in alphabetical order anymore. However this only happens in Blender's original UI and not in the custom UI generated with prop_search.

My questions are:
1 - Is it possible to select a node group to perform operations on without altering the order of the list? I tried using EnumProperty instead of prop_search but it doesn't allow searching the list.
2 - Alternatively, is it possible to sort the list back to alphabetical order so that it is displayed correctly in the original Blender UI?
Code:
import bpy

from bpy.types import (PropertyGroup, Panel, Scene)
from bpy.props import (PointerProperty, StringProperty)

class MAIN_PT_panel(Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "GN Tools"
    bl_idname = "MAIN_PT_panel"
    bl_label = "GN tools demo"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        props = scene.my_addon_props
        box = layout.box()

        box.label(text="GN group")
        box.prop_search(props, "selected_group_find", bpy.data, "node_groups", text="Group")

class MYADDON_PG_properties(PropertyGroup):

    selected_group_find: StringProperty             (name="Selected Group", default="")

classes = (
    MAIN_PT_panel,
    MYADDON_PG_properties )

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    Scene.my_addon_props = PointerProperty          (type=MYADDON_PG_properties)
def unregister():
    del Scene.my_addon_props
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()

prop_search does not seem to have a sorting feature.

@XY The UI created with prop_search actually displays the node groups list correctly in alphabetical order, however the original Blender UI displays it with the latest selected group on the top of the list. I updated the question to make it clearer.

In blender 4.2. I noticed that bpy.data.node_groups will sort the order after renaming node groups. So, the image you provided on the right will never happen.

@XY I tested this with 4.2 but I get the same result. If I select a node group with the prop_search in the addon panel the group is always moved to the top of the list. Then if I rename it, the group (but only the renamed group) goes back to alphabetical order. However if I change it back to the original name it is moved to the top of the list again. You can test this using the code above.

Not sure if it can be sorted. Maybe try to creating a Collection property


text:
How to stop smoke from lingering around
I am currently trying to make an explosion with mantaflow. Everything is just working fine except the fact that the smoke just keeps lingering over the particle emitter/smoke inflow (from frame 160 onward), even though the last particles where gone around frame 65... And yeah, I've set the flow source to my particle system...
Also tried this with blender 2.83.2 and 2.83.3 with no differences in baking behavior.
Don't know if this is a bug or I'm just stupid...

Thanks for your help!
EDIT:
After a bit of thinking i solved the problems myself... I'm assuming that there was some interference with the collider plane and the emitter... I moved the emitter a little bit higher, away from the plane, which had a collision (particles) and a smoke collider physic simulation active...


text:
Why is the '3D Objects' folder not in the Blender file browser quick access menu panel?
Is there a particular reason why the "3D Objects" folder (part of user files & folders) is missing in the Blender 'File > Open...' file quick access menu list (which contains "Home", "Desktop", "Documents", "Downloads", "Music", "Pictures", "Videos", "Fonts" - BUT NOT "3D Objects" - which is weird because Blender is all about 3D Objects..)?

Likely because older versions of windows don't have that folder.

My personal work around was to add it to my Favorites section by going to
C:\Users\[username]\3D Objects
Then entering the folder, and then in the Favorites section, either clicking on the + button, or right clicking in the Favorites window and choosing Add Bookmark from the menu Ctrl + B.


text:
How do I create a smooth curve along an edge on this model?
I am trying to recreate a Toro Lantern, like the ref image below. I am trying to figure out how to create a smooth curve that goes up the neck of the Toro Lantern. I have tried edging a crease on it and subdividing it, but to no avail I cant reach the desired look I'm going for.

could you please highlight the part you're talking about on the second picture?

It is the hourglass figure the Toro Lantern creates, I left a white outline in the updated post. Thanks in advance!

I would use an actual curve object in combination with a Screw Modifier.
First create a curve that will be one of four curve edges of your final object. Then in Edit Mode make it the shape you want, but also move it away form the origin in a way that will make the origin the center of your final object. (note the orange dot/origin in the gif image)
Then put a Screw Modifier on the curve object. Set the Axis to X, the Angle to 360, and the Steps to 4. Now if you manipulate the curve, all four curved edges change accordingly.

When you are happy with the shape press Alt + C and choose Mesh From Curve/Meta/Surf/Text, which changes your object to a mesh and applies the modifier.
Since the edge curve in your example image highlighted in white actually splits into two edges at some point, you might want to model this part manually as proposed by moonboots. You can select part of the edges of the curve, up to where the split would be split, and press Ctrl + B to bevel the curve and create the split. (in this example the top part would also have to be scaled down manually to make the curve flow nicely)

I think you just need to bring some horizontal edge loops and squeeze a bit, like that:


text:
What is my mistake in creating the uv map of the lantern?
I am trying to make a uv lantern for substance painter use, but I keep running into problems.

this is uv map of this lantern
After separating the seams, I encounter gaps in the SP, it looks like a hard joint, but without separating into seams, it does not work out to make the correct UV map.

uv without manually specified seams (I used the  smart uv project function) I would be very grateful if someone could tell me what to do. maybe someone can suggest good guides for creating uv? I certainly found a few videos on YouTube, but they are all very superficial and almost useless.

First , I see some Overlapped UV islands (may I wrong because of image size).
Second , you should use a checker map to check your UV

then in Substance painter for some materials and texture coordinate you should change Projection on UV or Tri-Planer


text:
Subdividing mesh causing weird bulging
 Bulging issue happens whether or not I am using the Subdivision modifier or subdividing it manually and removing Bevels doesn't help as well. The area in in question is CURVED.
Shading with Autosmoothing is turned on and tried putting in bigger angles which didnt help. Normals are facing the right way aswell.
I think im missing a simple fix, TIA :)

you must have subdivided it with right click > Subdivide and it has added edge loops along existing edge loops which has made them sharper, while applying a Subdivision Surface modifier would have avoided the problem. Also, why did you subdivide?

I wanted subdiv to add more details in that area, While Subdivision modifier level 1 kinda makes it unnoticable other levels bring the bulging back, but I guess that will be my makeshift fix for now, Thank you! @moonboots

you can try a Ctrl E > Un-Subdivide if you want to remove edges

can you share the blend file with inside the only mesh with the problem?

well i dont have the mesh anymore in that state as i applied subdiv level 1 which made it unnoticable but i think unsubdiving it and then adding supporting loops wouldve helped the cause


text:
How does blender achieve seamless noise textures for cubes?
When using generated noise textures (i.e. "Noise", "Magic", "Voronoi", ...) for the displacement modifier or as surface for a cube there are no seams visible.
See my gif for ants for demonstration (Cube with Voronoi Texture):

How does blender achieve this? Does it sample the noise texture on a sphere and projects it onto the object like proposed here (https://gamedev.stackexchange.com/questions/97591/how-to-create-a-seamless-cubemap-noise-texture)?
Edit: Thank you @moonboots and @crantisz - now i got it :) The word texture was always connected with 2D in my brain and did not match with 3D at first ;) So in other words: The space itself around the object is filled with a 3D - Voronoi field / pattern (see example one below) and you can see the intersection between the object boundary with this 3D pattern on the objects surface.

these are 3D textures, that's why they are seamless

As moonboots has commented, this is 3D texture. In fact, you can specify the type of it from 1D to 4D texture:

But what it is basically means? It's easy to understand, then you set randomness to 0. In this case, Voronoi's anchors is set into regular grid:

But what is interesting if we start to extrude this plane. We will actually see what next layer will reveal on top of current one:

Now you can see that the Voronoi's anchors is located not in 2D, but in 3D space.
When slowly get back randomness back to 100, and you will see how Voronoi texture actually build.

In different situations, 2D type or 4D type of Voronoi may help. 2D produces flat dots, so the size of shapes is more even. 4D texture can be used to shift texture in additional dimension, so you can get different 3D textures and smooth transition between them.


text:
Geometry Nodes: Connect vertices on a zigzag curve
I have a zigzag bezier.
I want to connect every nth with every nth+2 vertex (with a curve).
It is possible to use indexpositions as start and endpoints for a curve line node, however that only creates 1 curve when I want n curves instead.
The curve line node cant have multiple inputs to create more curves, so generalizing the input with the "index+modulo" nodecombo doesnt work.
How can i get n curves?

Markus von Broady suggested a solution that works almost perfectly. Just need to figure out how to remove some of the instanced lines now without the remaining ones randomly jumping all over the zigzagcurve

There is a solution and it's easy, but please clarify: why do you want multiple, rather than just two curves? As you cna have one curves going on the left of the zigzag, and another on the right. One curve would go through all left points, another through all right points. One reason why you would want separate curves (more than mentioned two) is if you e.g. wanted to convert them to mesh, and wanted them to be separate segments rather than continuous…

the reason i want multiple small curves in those locations is because the zigzag line is a super simplified representation of the "bendy river" you helped me with the other day and im trying to figure out how to add parts where the river splits in 2 and then merges again .

Consider this setup:

It first converts a spiral to a zig-zag, then spawns curve lines on all points but the last two (notice how the End position socket of the Curve Line is hidden, because it's irrelevant - about to be set) , then the instances are realized, for each end (as opposed to start; the 2nd point) is moved: first the index of this point is divided by $2$ to calculate the index of the point spawning this curve (alternatively the instance index could be captured before realizing it), it's not floored, because for the end of a curve it's always divisible by $2$, and once the index of the spawning point is known, add $2$ to it (on zig-zag every odd point is on the left, and every even point on the right, or vice-versa; so $+2$ means next point on the same side). This is basically it, the rest is using some logic to do something fancy with the curves…

That's 78 separate curves:

But the same effect could be achieved with just 3:

Or even just 1!

The method with dividing the index by 2 works so far. But i also tried to capture attribute the instance indices and it doesnt work at all. it appearently just returns a zero instead of "integer field based on index" like the divide method does.

@sinwar https://i.imgur.com/lyYJHkl.png

i did use exactly that capture method and it didnt work! it returns a 0  and then a 2 gets added so all the curves have their endpoints moved to index #2: https://imgur.com/a/xoN4lSU       And the "divide index method" just works for some reason: https://imgur.com/a/cPSQldp

NVM i found the mistake. the realize instance node gets the wrong instance feed


text:
Geometry nodes: How to make a curve meander like a river?
I have a mesh circle in the yz plane.
The circle is the basis for a river on a ring spacestation.
So i would like for the curve to meander a bit along the global x axis and a bit along whatever the tangent of the circle is at each point, but not along the normals of the circle.
Using the set position node to randomize the curve vertices in the global x axis is easy, but how can i add random offsets in the tangential direction at each vertex?
The attached image shows a tiny segment of the circle on the left and i drew the shape i want to achieve on the right.

MY final solution (modifiying Markus von Broady's suggestion to make the river more bendy):

It got sooo bendy that i had to set the modulo node to 3 so the curves wouldnt constantly cut through each other^^

Very nice, I thought your 'fix' would make the bends ugly (kind of "V" shaped) but no, great result.

Did you know…
A natural river goes in a straight line only for up to 3 times its width.

I tried to capture this logic, but failed to do so, apparently my river is too lazy at bending - of course it could easily be remedied by decreasing the $3.0$ multiplier at the very beginning, but then it's just an arbitrary number, ugh.

At least it seems to scale well with the Width:

This solution is really nice. Wouldnt just increasing the handle length make it more bendy? Is there no option to scale the handle lenght? I tried the set handle positions node with the curve tangent node as input for the offset but that doesnt...work

@sinwar the straight segments actually come from the bends being too big - ever 2nd point is displaced by too much and that creates too long segments. so decreasing the magnitude of random displacements will fix that.

No its not that. I found the real problem that prevents bendyness: Offsetting every 2. point. If you Off set EVERY point the river gets  VERY bendy. just remove the selection from the set position node and then alternate between every 2. point instead of every 4th.

you get this:

with this node tree:
first part just creates some open circle instances:

then i just double them to the other site and random the scale:

with the stored "top point" i randomize positions dependent on the distance to the top point so that the points move like proportional editing

after that just some "roundings" via blur node and some radius randomness and curve to mesh.


text:
executing external scripts, do I need compile?
When executing external scripts
Executing External Scripts - Tips and Tricks - Blender Python API
I know I am meant to use:
filename = "/full/path/to/myscript.py"
exec(compile(open(filename).read(), filename, 'exec'))

But I accidentally used:
filename = "/full/path/to/myscript.py"
exec(open(filename).read())

It works!
Is there any good reason not to use the shorter form?
What is the purpose of the missing compile, filename and 'exec'?

From the Python docs on the compile() function.

This function raises SyntaxError if the compiled source is invalid, and
ValueError if the source contains null bytes.

Whenever you use the open() function to open a file, you're accessing that data while the script is running, but not explicitly closing it off. This means if your script stops running in the middle for some reason, you can potentially leave that file "half-open" which can cause corrupted data and other problems. The compile part can give you a warning which you can check for, and then use that to tell your script to close the file if there's any issues.
It should be mentioned though, that the exact syntax from the Blender docs is the quick-and-dirty python way that will technically work. But a better way might be something like this.

filename = "/full/path/to/myscript.py"

# using this syntax automatically handles opening/closing the file,
# avoiding that aforementioned issue.

with open(filename, 'r') as my_script:
    loaded = my_script.read()

# Then once the file is loaded in, compile and execute

exec(compile(loaded, filename, 'exec'))

Excellent, thank you. And if I want to pass arguments to my script, is this (below) correct?
Of course I would retrieve any arguments in the called script.
filename = "/full/path/to/myscript.py"
arg1 = 15
exec(compile(loaded, filename, 'exec'), {'arg1': arg1})

Yes, I just confirmed that that does work. That dictionary is a replacement for the locals argument. You would access them in the target script by getting them from the locals() dict.

Exactly. You can pass globals and locals, separately and in the correct order. I don't know how to enter formatted code into a comment...

You can't do full formatted code in comments, other than using the backticks to change the font/highlighting. Glad you figured it out though.


text:
How do I see data-blocks menu in 2.80?
The docs mention what to do when you find the menu - but I am unable to find it!
https://docs.blender.org/manual/en/latest/interface/controls/templates/data_block.html
Thanks.

what menu are you talking about? The data-blocks appear in the Outliner editor, which is the top right window by default in 2.8. In one of the dropdown menu of this window you need to choose View Layer which should also be here by default

The one described in the Blender Manual at:https://docs.blender.org/manual/en/latest/interface/controls/templates/data_block.html

The page you linked doesn't describe a specific menu in Blender, but a type of menu which you find in many places of Blender.

Lets you select a Data-Block (such as a material) in order to link it to something else (such as an object).

Go in the properties editor > material tab with an object with materials selected and you will see an occurrence of that menu. You can also see one in the shader editor, text editor, image editor, ... Pretty much any time you need to be able to select a data block in Blender.

I also had a bit of trouble locating it at first as well.
Here's how:
Open an outliner and then change the outliner type using the second dropdown from the left. Select blend file

This blend file outliner has all of your data block objects. Here you can perform useful operations such as duplicating and unlinking them.


text:
Array modifier on parent and all of its children
I have a parent with a lot of children. I want to use an array modifier on the whole lot of them, including the parent, but, when I add an array modifier to the parent, only it gets duplicated.
One sort-of-solution I found is to Duplicate Link the parent along with its children, but this requires fiddly manual positioning that I'd like to avoid, and I also think this would make it difficult to add a child. The other solution I found is to add an array modifier to the parent and every single child; although this method does what I want in theory, it's still a lot of clicking.

Do you need the children's array modifiers to update along with the parents

Are you talking about my second solution? If so, yes.

Related: http://blender.stackexchange.com/q/3271/599

Create your parent object, then create one child. copy the array from the parent to the child Ctrl-L. next take the child and add drivers to all of the parameters in the array modifier that you want to auto update. now copy the drivers and array modifiers onto all  of the other children. Done!
Using drivers is tricky, Here are some tutorials:
https://www.youtube.com/watch?v=o4qYHNA_x4Q
https://www.youtube.com/watch?v=ajMAvKRCTBg
How to copy drivers onto multiple objects

Can you please add some detail? I have never used a driver.

A bit disappointing that array modifiers don't copy objects with their children but this solution works like  a charm and isn't too hard to set up. @catlover2 Although I know it's more than a year later I still want to mention that Mastering Drivers has been an excellent resource for me to fully understand drivers in Blender.

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


text:
How do I remove the glow from particles
I've setup a plane with a particle emitter system. When I render the footage and the particles are glowing. Where do I find the settings for that?

You're rendering the particles as halos (the default). You can render a sphere object for every particle if you set the render type to "Object" in the particle settings, then select a sphere object in the dropdown.

As mentioned by CharlesL,
that glow is caused when the particles are rendered with Halo selected in Particle settings > Render:

From the wiki:

Particles may be rendered as:
Halos (for Flames, Smoke, Clouds).
      Meshes which in turn may be animated (e.g. fish, bees, …). In these cases, each particle “carries” another object.
      Strands (for Hair, Fur, Grass); the complete way of a particle will be shown as a strand. These strands can be manipulated in the 3D
  window (combing, adding, cutting, moving, etc).

To render a surface, you can change the rendered type to Object (to render a copy of an object in place of the particle) or Group (to randomly select the object from a group of objects)
You can change the halo settings by adding a halo material to the emitter object and changing the Material setting to the appropriate value in Particle settings > Render
The other options are

None
fairly self-explanatory, do not render particles
Line
Render a line along the vector of the particle
Path
Used with hair particles
Billboard
Render 2D planes at a fixed angle to the camera

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


text:
Are animation markers part of the timeline or part of an action?
I'm trying to use animation markers for events in a game engine. I added several actions to a test file and a few markers.
The markers seem to be the same in all actions, and editing a marker with one action active changes the marker in the other actions.
So the question is, are animation markers stored similar to keyframes inside an action, or are they stored outside the animation? Are they purely meant as an editing tool? Is there a separate mechanism to mark animation events or do I need to script something myself?

Perhaps you could better define "animation" event. I suspect that you're not being granular enough in your actions. That is, if you're defining multiple "animations" within a single action, then that should probably be further broken up into smaller actions.

Animation events are used for example to trigger sound effects or particle systems. Or for example to mark the point in an attack animation where damage should be applied. CoDEmanX's answer is exactly what I was looking for.

It depends, there are Timeline Markers and Pose Markers.
Timeline markers are stored at scene level, whereas Pose markers are stored in an action:
# Timeline markers of current scene
bpy.context.scene.timeline_markers

# Pose markers for 'CubeAction'
bpy.data.actions['CubeAction'].pose_markers

In the Dope Sheet editor, switch to Action Editor.
Click the menu Marker > Show Pose Markers to see pose markers.
With this enabled, creating markers will add pose markers!
(Pose markers show a diamond-shaped icon)
With Show Pose Markers disabled, you may select Timeline markers (they show a triangular icon) and click Marker > Make Markers Local to convert them to Pose markers. Note that the original Timeline marker will be gone. If you want to keep it, make a duplicate before you convert (ShiftD, Esc).


text:
How to delete output attributes of the group output geometry node
While trying arround I created some output attributes in the group output node of my geometry nodes:

How can I remove them again?
I could not find a way to do it. Even if I delete the group output node and add it again, it keeps the output attributes.

In the Geometry Node editor, open the side panel (Shortcut N) and select the Group tab.  In the Output panel, select the name of the attribute you want to delete.  Click the minus sign.

In my example, I've just selected Vector. When I click the highlighted minus sign, it will be removed.


text:
Create a wooden floor from a set of textures
I’m trying to create a wooden floor from a set of textures. My idea is, to use one image for each floor board. Thus, I create appropriate scaled cubes for every floor board and want to randomly apply one of my floor board textures to each of those.
This works pretty well to the point where I want to limit the generated floor to the extents of a room. At this point everything falls to pieces.
I tried two approaches. One using the Array Modifier and the other using Geometry Nodes, which is my favourite. As both are using the same material, I will first explain my material. Afterwards I will explain the approaches.
I would like to stay non-destructive. Nevertheless, I tried destructive workarounds, which led to other or similar problems.
How can I solve this?
Material
My idea is, to stack all textures of a type in one image. Thus, I can choose one of them by choosing the corresponding range of y-coordinates. As I’m still in the proof of concept, I don’t currently use wood textures. Instead, I created a structured image with different colors, where every color represents one wood image:

Here is my material:

And this is how the node “RandInt – Color-Index” works:

The Geometry Nodes Approach
I’m using the following Geometry Nodes setup:

When muting the Realize Instances node, this creates the following result, which is fine:

When I try, to limit this to the extents of a room by applying a Boolean modifier, nothing happens.

And when I unmute the Realize Instances node of my Geometry Nodes setup, the Boolean modifier works but my material does not work properly anymore:

The Array Modifier Approach
I added two Array modifiers to an instancer object like this:

This gives me the following result:

When I apply a Boolean modifier on the instancer object, it does exactly what it says: It intersects the instancer objects but not the instances. Instead, it creates one complete floor board instance for every instancer object, that remains at least partly after the boolean operation:

My blend file

I'm using Blender 3.0.1

Just limit with the inbuilt Boolean modifier - or quicker: with delete geometry. Or just visually with shader nodes.

If your problem hasn't fixed,pls upload your file,I'll have a try.

I might suggest using the geometry nodes to set the material instead of having the material decide the board choice.

@Chris, thank you for your hints.
As soon as I plug in a Boolean node into my chain, all floor boards get the same colour. I placed it right in front of the Realize Instances node.
And if I switch the Boolean node to intersection with my bounding box, everything disappears.
Delete geometry would delete complete floor boards. I would first have to cut them along the border of my room. Which brings me back to the Boolean node or modifier.
Concerning the Shader node approach: Sorry, I don’t have a clue of how to hide parts of objects using Shader nodes.

@TheLabCat
Thank you, this solved it. I will describe the solution tomorrow in this thread.

@NatureK Thank you for the offer. I solved it.

@AndréZmuda : if you provide your blend file - I will try to show you what I meant. Just because you didn’t make it, doesn’t mean it doesn’t work.

@Chris : Thank you for this offer and sorry, I didn’t mean to be unkind. As I can see from your posts, you definitely have more knowledge and experience in Geometry Nodes and Shaders than me. I would be happy, to learn from your solution. :-)
I will do some clean up and come back to you with the blend file.

@Chris : Just added the blend file

@AndréZmuda: added an answer, but i don't know whether you are happy with that ;)

As proposed by @TheLabCat , one solution to this problem is, to set the material using geometry nodes. Instead of using the complex material from above, I added 3 simple materials to my floor board:

Then I activated the Realize Instances node in my geometry nodes and set the material index to a random value:

After doing this, the boolean modifier works properly:

But uv-mapping breaks, when I replace the simple colored material by a texture-based material with an UV-Map. Following, I will explain, how this can be fixed.
I created three materials red, green and blue, that use the following images as texture. The black and white stripes on left are intended, so that it is easier to see, if the material is aligned properly.

The following image shows how these materials look like. I will explain the Texture Mapping group node later on.

As the UV-Map breaks, when the Realize Instances geometry node is activated, I switched the texture coordinate in my material to Object and set the scale by using a Mapping node to the extent of one floor board (2.42 x 0.178).
But that still is not enough – every row of floor boards is shifted in x direction compared to the others. In order to consider this shift-value, I capture the position attribute of the faces just behind the Realize Instances geometry node and expose it to an attribute named x-shift in the Group Output.

And all adjustment of the texture happens in the Texture Mapping group node, that has been mentioned above. This is, how it looks like inside:

I will explain this, starting at the mapping node on the right. As already mentioned, I use the Object output of the Texture Coordinate node for the basic texture mapping. Therefore it is plugged into the Vector input. The length and width of one floor board are expected as an input into this group node. They are used to define the scale of the texture mapping.
To realize the x-shift of the floor board rows, I grab the value of the x-shift attribute of the Group Output from my geometry nodes, by using an Attribute node. For some reason, the position attribute of the faces seems to reference the center of the faces. Thus, I have to shift the shift-value by half of the floor board length, which happens in the two blue Math nodes on the left. The result is written into the x-coordinate of 0-vector, which is used as the location of the texture mapping.
And this is, how it looks like:

i found one "cheap" solution via shaders like this:
Create a plane (or whatever object you like), then extend your shader nodes like this:

set blend mode to alpha blend

and you can limit your texture with the greater/less than values:

...but i don't know whether you are looking for practical "solutions" or "theoretical" perfections...because this is "just" a solution.

Thank you very much for this solution. :-)  -  It solves the described problem and is really quick, pragmatic, useful and interesting. I will keep this in mind for the future. Nevertheless, concerning my current topic, I will stick to the solution, that I described in the other answer. It can be adopted more easily to other – more complicated – room shapes.

that's totally fine with me. Glad you find it useful.


text:
Why does smoothing disappear when stacking bevel modifiers?
When applying two bevel modifiers the smoothing of the first one disappears. Am I doing something wrong or is this a bug?
I am using blender 2.83 and here are my working steps:

Set bevel weight of an edge ring of the default cube to 1

Add the following bevel modifier

Turn Auto Smooth on
The result is as expected:

Add another bevel modifier as follows:

Result: Only those edges that are bevelled by the second modifier get smoothed.

I would have expected that the smoothing of the large rounded edges is still visible.
Update
Now I know, how to solve the task - thanks to the hints of Jachym Michal :-)
After applying Smooth Shading (RMB - Shade Smooth) to the cube, it looks like this:

In order to get rid of this shading issue between the flat surface and the rounded corner, that looks like a sharp edge, you need to turn off Harden Normals in the first modifier:

Anyway the Why in my question still remains.
Remaining Questions

When Auto Smooth needs Smooth Shading activated, why does it seem to work properly, when only activating the first modifier?
Why does it break, when turning on the second modifier? Why do I need Smooth Shading in this case?
Why do I get those shading artifacts and why do they disappear, when turning of Harden Normals in the first modifier?

When someone knows the answer, I would appreciate your help. Meanwhile, I will try to understand clearer, how Harden Normals and Auto Smooth are working behind the scenes. Hope, this helps me, to understand the reasons.

Hello :). Are you sure the cube has Smooth Shading applied? (RMB > Shade Smooth)

No, it is not. And when I do, I get shading issues at the edge between the flat surface and the rounded corner.
(Why) Isn't it enough to turn on autosmooth? (Object Data - Normals - Auto Smooth)

Nope, you need Smooth shading enabled for Autosmooth to work properly :).

Ok. Thank you for this hint. Did not know this. But how do I get rid of the mentioned shading issue? Looks like a sharp edge.

Added a screenshot of the result in the post.

Hello :). When Harden normals is only checked in the last modifier (Angle limit) it seems to work just fine. I encountered this before, but I'm not sure why that happens :).

Yes, that's right! Thank you :-)
I probably have to dig deeper into understanding what hardening normals does under the hood.


text:
Geometry nodes: How to constraint the selection for "distribute points on faces"?
Goal: I use "distribute points on faces" on a simple plane and want to prevent points from spawning for y>3.
Problem: Why is the nodelogic "position->seperate xyz->compare" not achieving this?

Image: With this logic I would expect all points for y>3 to disappear but nothing happens

Is your scale applied on the mesh with the GN modifier?

If you want to "remove all points..." you would have to use Delete Geometry after Distribute Points on Faces.

@quellenform I think they mean like "Remove all points" from the Distribute Points node selection, not like actually remove them entirely.

@quellenform Im not trying to delete points after they got created. Im trying to put a restriction on the selection of the distribute points node. y<3=true should make it so that there are no points for y>3, right?

@sinwar Well, in this case it is always a per face selection, because the Distribute Points to Faces node works with the faces of a mesh. If the result is not as expected, then Jakemoyo's question is quite justified: Did you scale the object beforehand? Apply the scaling with Object > Apply > Scale.

@quellenform it had nothing to do with the scaling. your answer with delete geometry worked and my logic also worked after creating more faces. see my answer post, thx for help

solution A)"delete geometry" works:

Solution B) The selection of the distribute points node decides if an entire face spawns points or not. so in my example it didnt work because i had 1 large face. creating several new faces with loop cuts and applying the logic makes it work too. (the steps are rougher though, depending on the amount of faces you have):


text:
Geometry Nodes: How can i prevent an instanced mesh to protrude over the "border" of the parent face?
I distributed points on a face with material_1 (green). I instanced a disk on the points.
How can i prevent the disks to protrude over the edgeloop that surrounds material_1?
(Deleting the disks in whole, cut off a part (not with knife project, solution should be in geometry nodes) or moving them "away from the border" would all be fine solutions)

i am honest: i would provide a solution if you would provide a blend file so that i don't have to rebuild it manually. And i am sure some others would attract that too

I would provide a file if i could upload one, but how^^? I can only add images

open https://blend-exchange.com/ and follow instructions

added the blendfile

A possible way:

Separate using material selection and test the proximity of each disk point to this selection.
If the distance is less than 0.1 (given as Z shift for the instances) + epsilon (0.001 which is important), then consider this is to keep.
In order to delete all the realized instance, accumulate the proximity test above grouped by island index (instance index) and test if the total differs from the instance vertex count.
If this is the case: delete it.
Increasing the density, that gives the following:

"Look at mesh island x, check if each vertex has a certain proximity to material2 and when the amount of vertexes that fullfill that is not equal to the amount of vertexes of a disk delete it". Thats a really elegant solution man.


text:
Geometry Nodes (4.1): How to randomize "hill" diameters
My Nodetree creates smooth hills on that green area. How can i randomize their radius?

randomizing the map range value that controls the radius of the hills
just creates some weird jitter.
trying to randomize other values like the geometry proximity distance
etc have similar results
maybe the random value needs some ID constraint. capturing the ID of the points that are the origin of the hills removes the jitter, but they are still all the same size

The entire tree for convenience:

you need a random position per vertex, which you separated. I generate a "unique" id by using xyz and multiplying and adding that:


text:
Why is particle system hair expanding the vertex group that controls the density for no reason?
Subdivide the default cube to have some more faces. Assign the top faces to a vertex group. create a particle system using this vertex group in the
"particle systems->vertex groups->density"
option. The resulting hair is on more faces than just the vertex group.
WHY?

You are specifying hair density with a vertex group.  But hair isn't emitted from vertices; its emitted from faces.  To measure the density, the vertex groups you've specified are interpolated across the faces.  Let's consider this point on your mesh:

Indicated by the circle selector.  What is the density there?  It is being interpolated from the top most vertex (assigned to the density group) and the bottommost vertex (not assigned.)  Which is, 1 and 0.  So the density is not zero.
If you don't want hair emitted from a face, period, then that face has to be interpolating between 0 and 0 density.  So none of the vertices making up that face can have any weight on that vertex group.

that seems to make sense. maybe they could add a checkbox "disregard density<1" or soemthing, that would help a lot i think

@sinwar Well I think most people are using GN for the hair these days-- I certainly am.  There, it's easier to be very specific about exactly what you want.  Perhaps easier isn't the right word: you get to be specific, but there's work involved.  For particle hair like you have, you could consider ripping edges if you want vertex groups that don't interpolate onto neighbors, that act like face-corner groups instead.

Almost appears to be a bug.   But, if you assign vertices that are "one short" of the top edges,

it will look as you desire.

I would be tempted to report this as a bug (Help >> Report Bug).

The same symptom exists in version 3.6.


text:
Geometry Proximity node: Not scaling surrounding mesh evenly?
I divided a Cube in striped areas with different materials, with the center stripe beeing red. I want a scaling (along x axis) to affect all stripes, fading out the further away from the center.
I thought this node arrangement could be read as "scale all stuff around the red material"

But the scaling effect appearently only affects the red material.

Why is the width of the green and blue areas not changing at all?
File (Blender 4.2.2):

Use "Boolean Math: AND" not "Multiply". Your example is incomplete. The .blend file should be complementary so it's easier to play around with the project without recreating it from scratch, but the question should show full setup. If the setup is big - reduce it to be minimal. You're using a random node, so I don't see why you would expect consistency.

I updated the picture. boolean and multiply are identical here.

Yes, I simply mean the boolean math is more idiomatic and readable. The "only x direction" can be done by normal -> vector math: multiply <1, 0, 0>. Keep in mind because normals are normalized vectors, your vertices on top/bottom edges will have smaller x components, because the z component will steal from the x component. You don't show the "range" and "amplitude" inputs, and for the sake of an example you shouldn't even rely on inputs, just put them directly in the map range node. And again: you're using randomness, so of course the result is inconsistent.

And the green and blue areas do change - if they didn't, they would overlap the red that has moved.

the green and blue areas only get translated while the red one gets stretched though

Use a normalized 0..1 value as map range output, then raise it to some power, then use another map range to convert it to the desired output. Or use float curve.

how do i normalize a float map range output?

To min = 0, To max = 1, or vice-versa.


text:
Geometry nodes: How do i properly randomize multiple curve lines?
I instanced a randomized curve line(with profile curve) onto a circle but all resultig meshes are the same. I want them to be different for each triangle tube. "Plane A":

In "Plane B" i first instanced a curve line onto a circle and then added randomized wiggles onto the result. This does make every triangle tube different but now the triangle tubes arent aligned to the circle normals anymore. "Plane B":

How can i align the triangle tubes in Plane B to the normals of the circle like in Plane A?

Explanation
In your 1st example, you first create a line, (skipping the random part as it's not that important here) then bevel it with a triangle with the sharp tip pointing up towards positive $y$ (a viewer will make it seem it points up, that is, towards positive $z$, but that's because your object is rotated), and then rotate around the vertical ($z$) axis, in order to make this tip ($y$) point in the direction of the "normal" (those are ironic quotes, the normal node returns the Position if there's no normal, and there's no normal if there's no face to read the normal from).
In your 2nd example, you first create a line (same as above), but then you instance and align it. Since it's a line going exactly through the $z$ axis, rotating it around the $z$ axis cannot possible do anything. And so your aligning makes no change other than setting an instance rotation attribute - which is then discarded (applied) upon realizing the instances. So you end up with just the vertical lines (again, they seem horizontal in the viewer because the object is rotated) and no additional information distinguishing a line from any other line.
Y Problem
In order to randomize those curve lines and maintain alignment to "normals" (of the big circle), capture the positions and rotations of instances, and then rotate the curves after beveling them:

And yes, some triangles point inwards, but it's not clear from the question if they shouldn't, as "properly" is an ambiguous term.
https://en.wikipedia.org/wiki/XY_problem
X Problem
Here's a more proper approach: you could do it like previously with Instance on Points and use the sampled Position as pivot point ('Center') instead of offsetting to it, but I just wanted to show a different way to do the same thing. The key difference, however, is to displace in the direction of the normal. If you position the initial curve horizontally and displace before rotation, the displace is always $<0, 0, z>$. The bigger benefit of using a horizontal curve is that if you want a sideways displace away from the normal, you can now use Set Curve Normal node with z-up option to ensure the tops of the bridges always point up.

Hey, great solution! I had first tried around with Curve Tilt (and was able to successfully solve the problem), but in the end it seemed too cumbersome and error-prone, so I didn't finish the answer. But the way you solved it here is solid and easier. Great!

@quellenform I think what the OP really wants (the X problem) is to spawn triangles, align them, and then randomly offset vertices, though I can see why someone would want to do it this way (more consistency of the beveled curve shape) - in which case the triangles pointing inwards can be detected and flipped… Waiting for the OP.

Hello, thanks for the suggestions. I came up with my own solution which works completely different but gives a quasi identical outcome to Markus von Broady's nodes.  Are you interested in seeing my solution? Otherwiese both my own and Markus solution have the problem that some triangles point inwards, as mentioned. The triangles are just placeholders for this simplified example, ultimately they are supposed to be bridges spread scross the inside of a ring shaped spacestation, so they should all point outwards (or inwards)

@sinwar see edit.


text:
Cloth flies away shortly after colliding with somthing
So I have this upsidedown ocean modifier plane exported as ABC, then imported back into blender with a solidify modifier added to it.
I'm trying to drop the cloth onto the animated ocean object but shortly after the object started moving, the cloth freaks out and flies away.
Please feel free to  ask for any additional info, and thanks in advance.
Blender file:

pls provide blend file, so we can check it out. thx. and ...if i may be honest...it is not our task to ask you for info, but it is your task to provide all necessary infos if you ask this question. You want help, right? so you should make it as easy as possible for us who help for free in our spare time. thx.

Oh sorry, my bad,  I didn't know you could upload blender files, I've uploaded the file just know!

i downloaded the file and it just keeps laying down - did u try deleting your cache?


text:
Flickering lines in Grease Pencil Line Art (Eevee)
So, I have added Line Art to a quite simple scene by adding a Stroke object and then setting a line art modifier.
I have adjusted the thickness and then baked the line art data.
Now, after I rendered the animation (it's also visible in viewport), some lines are extremely flickery:
Youtube
I don't even mind the light bleeding through that much, but the line flickering destroys the scene.
I went through all the settings I could think of, but could find anything. Do you have any idea on what might help?
Scene file; I've been using Blender 3.1.0 Beta; the problem also exists in 3.2.0 though.

I fixed the issue by making sure there were no lines perfectly in front of one another from the cameras point of view.
Blender apparently freaks out if two lines fight to be in front.


text:
EnumProperty does not support Chinese in dynamic initialization mode
I created a new workspacetool to display all the files in the folder, but if the file name is Chinese, it will be garbled. my blender version is 2.93.4,  that's my code:
def enum_items(self, context):
    items = []

    path = os.path.dirname(__file__)
    folder = os.path.join(path, self.preset_name, "")
    files = [(folder, file) for file in os.listdir(folder)]
    id = 0
    for folder, file in files:
        items.append((file, file, "", "", id))

        id = id + 1

    return items

class WallTool(WorkSpaceTool):
    bl_space_type = 'VIEW_3D'
    bl_context_mode = 'OBJECT'

    bl_idname = "my_template.wall"
    bl_label = "wall tool"
    bl_description = (
        "This is a tooltip\n"
        "with multiple lines"
    )
    bl_icon = "ops.generic.select_lasso"

    bl_keymap = (
        ("my_template.wst_wall_op", {"type": 'LEFTMOUSE', "value": 'PRESS'},
        {"properties": []}),
    )

    def draw_settings(context, layout, tool):
        props = tool.operator_properties("my_template.wst_wall_op")
        layout.prop(props, "style")

class WallOperator(Operator):
    bl_idname = "my_template.wst_wall_op"
    bl_label = "Wall SpaceTool Operator"
    bl_options = {'INTERNAL', 'UNDO'}
    preset_name: StringProperty(default="presets\\test")

    style: EnumProperty(name="Style", items=enum_items)

The contents of the 'test' folder are:

Interface display：

If I initialize EnumProperty like this, it will be correct：
     style: EnumProperty(name="Style",
                         items=[
                             ("新建文本文档", "新建文本文档", "", "", 0),
                             ("新建文本文档2", "新建文本文档2", "", "", 1),
                         ], default="新建文本文档")

Interface display2：

There's a warning about using a callback in the docs. Apparently you need to keep a reference to the items alive on the Python side. Maybe try stuffing items into self or something.

problem solved，items = []
def enum_items(self, context):
items.clear()，thanks


text:
2d sprite bone rigging
I have a question. Is it possible to draw a sprite from a side view and then rig that with bones? Maybe I would first have to import the image into blender and then dop that outline with a mesh. Then, if even possible, I could maybe attach the sprite to the mesh and add the bones. I dont really have much experience with blender but I did create a humanoid sculpture and successfully rig it a long time ago. I don't remember being able to paste an image to the mesh in blender, but I do remember something having to do with seams and then maybe I could export those parts and attach it to them in another program (or worse have to draw over them which means having to draw the image all over again.) I'm not much of an art guy, more of a coding guy. I use Unity and would like to only have to draw one image and then do all the animations of that one image in blender so that I can focus more on coding. If it is possible please let me know. Thank you in advance for any response.

Sure possible. You could use the "Import Images as Planes" addon bundled with blender, you could also use Inkscape and Blender to import the sprites as curves and there are many more possible ways that come in mind. Your question sounds more like a tutorial request. See this, this or this.

To get started with your project you could enable the addon Import Images as Planes in Menu: File / User Preferences.
It will be accessible from the menu File / Import / Image as Plane and create a plane an UVMap and assigns the image texture.
Note: You need to set the Viewport Shading to texture otherwise you won't see the image texture.

Bones are used to deform geometry you should ask another question (perhaps add an illustration) on what exactly you want to achieve.

You can tweak the subdivided edges in the UV-Editor and scale to maintain the proportions. Separating P By Selection for e.g. the legs allows you to have single objects for this part of the image which can be animated using bones as shown in the image above.

Yea couldn't I subdivide the plane with the texture plane and assign the vertices to a specific bone? The problem I have with importing a texture as a plane will be that it will be a square. I don't need that I need just my character which obviously wont be squared.

@luigi You can subdivide or loop-cut the mesh in edit mode. Updated answer


text:
How to connect objects if they don't match?
Hey I want to connect these ears to this head. The thing is I want to rig it later and I'm worried that if I don't actually join the two meshes together it will look weird if I move the ears with a joint. Would it work regardless or do I need to connect both meshes. If I have to connect them the problem I have is that obviously there are aren't enough vertices on the head to properly connect the ears to it. I know about adding a new edge or also subdividing so that's really no problem. What I want to know is if this is absolutely necessary or if there's a way to connect these 2 objects together without doing this.

It might look strange if you want the ear to bend, but it's hard to say. There is really no way to connect mismatching geometry without making a mess of tris (if you don't mind tris, then try the bridge tool; W> Bridge edge loops). Since it's kind of hard to make separate objects which match perfectly, I think the easier solution is to extrude the ear out of head.

Ok I see what you mean. Just to make sure tris are faces with only 3 edges correct? Another thing is I see people model online but they do  it face by face. I might just start doing that. It looks like it takes a lot more skill but it also seems to eliminate a lot of problems

Yes, that's a tri(angle). Here is a list of tutorials on blender.org covering many topics, including modeling. Also see the beginner's reference, which lists many good tutorial sites. Hope it helps :)

There are ways to join edge loops with different vertex counts, basically you have one or more loops that alter the vertex count. This answer shows some ways to do that and links to another post with more examples.


text:
My STL format export is only 1KB in size? Any idea what went wrong?
I created a simple model and exported the file as an STL. However, when I go to the folder the file is a Certificate Trust List and is only 1KB in size. I don't know what I did wrong.

Can you try exporting with another version of Blender?

that's normal, do you have problem when importing it again ?

I'm trying to send it to shapeways to have it 3d printed. However I did just try import, stl, the file, on blender and it got imported but there's nothing there. It's an empty object with no mesh

select the object before exporting

@Chebhou ok that definitely increased my file size, though it still seems too small at 16,000 KB. I'm gonna try to upload to shapeways now

try importing it again

Chebhou yep it worked on import now too. My main thing though is uploading to shapeways which I believe is working. Not sure I think the site is having some difficulties all around cause it's very slow

When exporting to stl format in blender make sure to select your objects, or it will export an empty object instead.
The .stl file on windows system will be recognized as a "Certificate Trust List" so instead of double click to open it , RMB and choose open with then your software


text:
How to remove vertex slide?
I used vertex slide for a shapekey. Everything came out great, except that when I go back to edit mode everything is deformed due to the vertex slide. I believe if I had used scale I could have gone back to object mode and alt + s to "undo" the deformation. However, resetting the scale, position, or rotation of the object seems to have no effect on vertex slide. Any fixes?

change the active shape key and see if it change

It changes in object ode, but not in edit mode

just click on the shape key not the value slider

Yes that's it, sort of! I clicked on the basis key (the one that gets created first) while in Edit mode and it went back to normal. Post it as an answer so I can upvote you and mark as correct.

In Edit mode you will see and edit the active shape Key only , but when you switch to Object mode you will see a mix between shape keys depending on the value of each shape :


text:
How to make a "rope" like object with even width throughout the whole object? (image inside)
I'm modeling a cord, but I've run into a problem. Basically I modeled it by starting with a cylinder and rotating the final edge, then extruding that to the next sequence. However, this will cause the width to shrink where the edge turns. It's only by a little, but I would like even width throughout. Truth be told, when I add the subdivision surface modifier it becomes indistinguishable to the naked eye, but I would still like to do things "the right way" if there is such a way.Here's an image of my cord minus sub surf modifier.

I just recently created shoelaces for a project that were round and made of 3 twisted smaller threads. I used a short mesh with an array mod and a curve mod. The end caps were the shoelace ends. Would something like that do what you want. I didn't measure the thickness but it looks good to me. They look like this: https://www.etsy.com/ca/listing/191378052/3-pairs-twisted-cotton-rope-shoelaces

Maybe this tutorial wil help you
tutorial by reynante martinez

Probably the most common solution to this problem is to create a Bezier curve and use another Bezier curve (often a circle) as the Bevel Object (in the Bezier > Geometry properties).

https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Bevelling_a_Curve has detailed documentation.
Your question is almost a duplicate of Make a 3D tube with a Bézier curve? .

You can also use the "spin" tool.
After selecting the vertices you want to extend, place the 3D cursor at the point that you want them to spin around. Angle your view to define the plane that the verts will be spun on and hit Alt+R. Tons of other handy options can be found in the tool bar.

One way to do this is rather than modeling the segments of the cord, to model the joints between the segments, and fill in between the joints by bridging the edge loops at the joints. Suppose the goal is a cord of 16 cylinders. Create an open circle with 16 vertices, and the desired radius, then adjust it to the desired orientation. Then pick one vertex, and extrude it away from the circle. The result looks like this:

Now to make your cord, make sure "Mesh:Loop tools" is activated, and set the pivot point to "active element". Duplicate the cord tool, and rotate it about the anchor point. When you get the two instances of the cord tool where you want them to be relative to location and rotation, as, for ecample in

select the vertices of the circles on both cord tools and from the edges menu (CTRL-Ekey), select the "bridge edge loops option.
This is the result.

Now the diameters of the places where the cylinders meet are all the same.
If the overall appearance of the cylindrical object is not quite what you would like, one easy way to adjust this is to add another circle at the point where it is least satisfactory.
Sometimes on an object like this, I'll make it away from the point which is its intended final location. Making use of this method means I can select all of the anchor points, and conveniently move the entire assembly to where I want it to go. After the I'm done with the assembly, I delete the anchor points.
Another technique is to make a short section of your cylinder, but instead of extruding the end, duplicate (SHFT-Dkey the section, and move it to the position of the second segment. Now add an empty object at the location of the center of the arc formed by the two segments, plus the intervening empty section. Rotate the inside ends of the two cylinder segments slightly, and again use the bridge loop to make the segment joining the two.
One common factor in both of these techniques is to keep the sections of the cord short, and the angles of the joint between the two as close to perpendicular to both of the axes of the cylinders as possible.


text:
Is there a way to increase wall thickness after applying solidify?
I'm going to go ahead and do it manually, but before I do I would like to know if there is a better way

Did you try the thickness setting on the modifier?

Delete inside faces and either redo the solidify modifier, or use the solidify edit mode operator?

If the mesh isn't that complex it may work using scaling along normals (Alt+S) with Even thickness turned on of faces created by modifier

There is a way in edit mode you might prefer if you select the wall faces and press Ctrl F and choose Solidify. The thickness appears in the operator on the left. The new faces are automatically highlighted so at that point, you can add the new faces to a new group. Then if you make further modifications and want the thickness different you can select the faces from the group, delete and redo.


text:
Append scaling issues. When I append an object it's smaller than the original
I noticed that when I append an object from one blend file to another, the appended object is smaller than the original. I have an object measuring about 9.3 cm and when I append it to another blend file it's only about 8.8. Wish I would have caught this before as it cost me money for a now unusable 3D print. Any idea how to fix this?

That should not happen. Could you add more info? I'm not abe to reproduce this issue. Is your object parented to something else?

Did you apply (Ctrl A) the scale in the source file?

Hey guys sorry for the late reply I was at work all day. So I just checked and yes apparently it had a parent this whole time. Upon removing the parent my object shrunk in the original blend file to the same size was getting appended as. I had duplicated it and moved it to a new layer. The armature parent no longer had any effect on the new mesh and so I thought it was free of any parent. Thank you both for your help. Carlo if you switch your comment to an answer I'll mark it as correct


text:
How to make snap operator not use transplate?
Just appoint two vertices\edges\face, The snap operator autocomplete. I have achieved the vertices mode, Calculate the translation matrix from vertex1 to vertex2, Then translate the object1's location, But I don't know how to deal with edges and faces.
import bpy
import bmesh
import sys
from bpy.types import Gizmo, GizmoGroup, Operator
from mathutils import Vector, Matrix
import global_var as glv

class ARCHIPACK_OT_snap_select(Operator):
    bl_idname = "archipack.snap_select"
    bl_label = "xxxxx"
    bl_description = "xxxxxxxxx"
    bl_options = {'REGISTER', 'UNDO'}

    widget = None
    act_name = None
    sles = []
    select_flag = 'first'
    type = None
    snap_obj = None
    location = None
    bm = None
    geom = None

    def _exit(self, context):
        bpy.ops.object.mode_set(mode='OBJECT')
        bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
        self.widget = None

        bpy.ops.object.select_all(action="DESELECT")
        for o in self.sels:
            if o.name == self.act_name:
                self.select_object(context, o, True)
            else:
                self.select_object(context, o, False)

        self.act_name = None
        self.sles = []
        self.select_flag = 'first'
        self.type = None
        self.snap_obj = None
        self.location = None
        self.bm = None
        self.geom = None

    def modal(self, context, event):
        # if event.type != 'MOUSEMOVE':
        #     print(event.ctrl, event.shift, event.alt, event.type, event.value)

        context.area.tag_redraw()

        if event.type == 'MOUSEMOVE':
            mval = Vector((event.mouse_region_x, event.mouse_region_y))
            # get catch element
            # element owner(snap_obj.data: objects list), last mouse location, mouse location, element type(vert/edge/face), object bmesh, element bmesh
            self.widget.snap_obj, prevloc, self.widget.location, self.widget.type, self.widget.bm, self.widget.geom, len = snap_utilities(
                    self.widget.sctx,
                    None,
                    mval,
                    increment=self.widget.incremental)

        if event.value == 'PRESS':
            if event.type == 'LEFTMOUSE':
                if self.select_flag == 'first':
                    if self.widget.type not in ['VERT', 'EDGE', 'FACE']:
                        self.report({'WARNING'}, "请选择构件顶点边面进行吸附！")
                    else:
                        self.select_flag = 'second'
                        self.type = self.widget.type
                        self.snap_obj = self.widget.snap_obj
                        self.location = self.widget.location
                        self.bm = self.widget.bm
                        self.geom = self.widget.geom

                elif self.select_flag == 'second':
                    if self.widget.type != self.type:
                        mes = ''
                        if self.type == 'VERT':
                            mes = '顶点'
                        elif self.type == 'EDGE':
                            mes = '边'
                        else:
                            mes = '面'
                        self.report({'WARNING'}, "请选择构件%s进行吸附！"%mes)
                    elif self.snap_obj.data[0].name == self.widget.snap_obj.data[0].name:
                        self.report({'WARNING'}, "请选择不同构件进行吸附！")
                    else:
                        self.snap_handler(context)
                        self._exit(context)
                        return {'FINISHED'}

            elif event.type in {'RIGHTMOUSE', 'ESC'}:
                self._exit(context)
                return {'FINISHED'}

        return {'RUNNING_MODAL'}

    def snap_handler(self, context):
        if self.type == 'VERT':
            self.snap_vert(context)
        elif self.type == 'EDGE':
            self.snap_edge(context)
        elif self.type == 'FACE':
            self.snap_face(context)

    def snap_vert(self, context):
        o_base = self.snap_obj.data[0]
        o_trans = self.widget.snap_obj.data[0]

        pp0 = o_trans.matrix_world @ self.widget.geom.co - o_base.matrix_world @ self.geom.co
        pp1 = o_trans.matrix_world @ self.widget.geom.co - self.location
        trans = Matrix.Translation(pp1)
        o_trans.location = o_trans.location - pp0 @ trans

    def snap_edge(self, context):
        pass

    def snap_face(self, context):
        pass

    def draw_callback(self):
        self.widget.draw_point_and_elem()

    def invoke(self, context, event):
        if context.space_data.type == 'VIEW_3D':

            # get catch service
            widget = glv.get_value('snap_gizmo')
            if not widget:
                self.report({'WARNING'}, "自动捕捉服务获取失败！")
                return {'CANCELLED'}

            self.widget = widget
            self.sels = context.selected_objects
            if context.active_object:
                self.act_name = context.active_object.name

            bpy.ops.object.select_all(action="SELECT")

            op = bpy.ops.object.mode_set
            if not op.poll():
                self.report({'WARNING'}, "缺少可吸附构件！")
                return {'CANCELLED'}

            op(mode='EDIT')
            bpy.ops.mesh.select_all(action='DESELECT')

            context.window_manager.modal_handler_add(self)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(self.draw_callback, (), 'WINDOW', 'POST_VIEW')

            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "Active space must be View3d")
            return {'CANCELLED'}

Can you show your code please so we know what you've tried

I have added my code. Unfortunately, the catch module involves too many other modules, I can't list them. @Psyonic

The function of the code is to enter the editing mode, select all objects, then select a vertex, edge or face of two of them, transform the second object, and automatically snap to the first object


text:
How to cut the intersection of two objects use scripts
There are two mesh object, they have a certain intersection, how to cut it?
It's not merge, just cut one of them, they are still two objects.
Current status：

I want:

Switch to Edge select mode, Select one vertical edge and "Slide Edge" (G, G) with Snap to Edge enabled ... repeat for second side. Alternatively Boolean operator, but since top faces shares the same location it can generates issues.

this is move, not cutting

boolean difference with exact mode should do it

@ff114 yes :) that is why it wasn't post as regular answer, but also could be a solution and was relevant until you changed title with "scriptů ... comment includes also Boolean (modifier) tip and as Gorgious mentioned - it should work ...  what I tried now, he is right in this specific case :)

is the python tag a mistake or are you really asking how to do this in python?


text:
Character rig issue
Good day everyone,
I have a model in Blender that is rigged. There are a few problems with the character. The first problem is when use manipulators which affect the hand rotation the right part of face start deforming. Other than that I have an issue with elbows. Because it is deform uncorrect.
upd: seems like the problem with shape keys. but I don't understand how to solve it.
Also I don't understand how to move the model at all. When I move the rig in pose mode origin doesn't move so I can't make animation.
UPD: the problem with moving was solved.
I have checked the weight paint and read a lot of qustions here but I haven't reached any succes in fixing it. I would appreciate any advices and help.
The file: https://drive.google.com/file/d/1HvWl95MOBm0Lbkx11wnZT2S718ikVqBy/view?usp=sharing

If head is pulled by arm controller then it must be weight problem, bone that controls arm must have a weight on head, are you sure it isn't the case?

@MikoCG I've checked the weight paint and the bone that controls arm doesn't have any weight on head

not even shoulder bone or fingers bone? (If they are used)

@MikoCG I've rechecked all bones. And nothing affect head except the neck bone.

The model has corrective shapekeys which are controlled by drivers that react to the bone movements/rotations. The deformation of the head is caused by shapekey wristUp.L. It's broken and has a deformed head. You can try to fix it by deleting it and then copy & mirror the shapekey wristUp.R to restore it. About the elbows, the mesh is not ideal. It lacks a good geometry for stretching and compression. The rig has no twist bones. Both could be the reason for the bad deformation. Or it is the bone position. The shapekey for the elbows can't do its job properly.

@blunder thanks a lot I'll try to change the spakeys and correct the elbow


text:
Can't get see-through material for eyes to work
I'm trying to make eyes for my character. I'm working in EEVEE. I've turned on Screen Space Reflections in material settings and its other location, checked the refractions box, switched from opaque to alpha blend, but it still isn't working. I dont know what I'm doing wrong but I'll upload my file.

There's a missing face in your Pupil object:

Since you did not pack the texture into your file, I added a simple red material to see the result. I also added another black material and assigned it to the missing face. Additionally, it's a good idea to use an Environment Texture to achieve better lighting results:


text:
What's causing my textures to look ribbed?
This seems like an easy problem to fix but I'm running out of ideas. Simply put, I'm trying to add this brick texture to my building, but in rendered view, the top of the building looks ribbed. Really don't like the way it looks. Any ideas on how to fix this? I'm using version 2.93 if that helps

We need more information. Can you at least include a readable screen shot of your material node tree?

Are you using EEVEE?

Yes I'm using Eevee. I'll post another picture

I noticed that under the shading tab the texture isn't ribbed. Why is this?

What does the underlying geometry look like? Do the ribs correspond to faces in a subdivided cube? Are the normals correctly aligned?

I don't know how to upload a .blend file

I think I figured out the problem. The sun light I put in was too low, and I think the ribbed look was the result of the sun light casting shadows of the trees on the building.


text:
How do I rig a spiral chord in Blender 2.93?
I'm working on an animated short involving a claw machine, and I'm trying to rig a spiral chord that connects a claw to the box it's dangling from. I can't seem to get it right. There aren't many tutorials on how to do this, but I've watched almost all of them and none of them are using version 2.93, which is what I'm using. I have everything modeled and I have a belzier curve for my chord, but that's all I have so far. I want to be able to animate the chord itself when the time comes, but I don't know what to do in order to make that happen.
Basically, I want the top of the chord to stay hooked to the cylindrical object near the top of the image. It needs to stretch when the claw drops and compress when the claw rises back up. It also needs to move dynamically according to the claw's movements. For example, if the claw hits something and turns at an angle, the chord should bend like this. Any advice would be greatly appreciated.

hello, there are probably several ways, but what your cord is supposed to do?


text:
Getting dents while using subsurf modifier without using mirror modifier

Why am i getting dents all of a sudden while using subdivision surface modifier?
And also i did not use mirror modifier.

You may have an unwanted "face" inside your mesh.

As @Dontwalk mentioned you have likely got additional geometry such as very narrow additional faces or loops. Try highlighting all in Edit mode and select Remove Doubles.

This is generally not about using Mirror modifier, it's about internal faces in the mesh which cut surface smoothed with Subsurf. They can be caused by Mirror modifier or by any other way but their effect is the same


text:
How to close a section of a sphere flat while retaining closest shape?
I'd like to cap an irregular section of a sphere with a flat surface while not modifying the section shape:

I'd like to get to s.t. like this:

but without the errors (non manifold vertex with 3 points of junctions)
Starting from the section above, I normally would select non manifold (the border) with Alt-Ctrl-Shift-M then create face, fill, or grid fill. But all these create non manifold artifacts.
Or I could use loop tools; but they modify the shape. My question:
How can create s.t like the second image, that is close the surface optimally, without artifacts and respecting starting shape? Just adding to the outside of the shape so as to keep it closest to the original?
Hope I've been clear... is there a way? Scripting is ok, too...
The blend

Why do you think there is non-manifold geometry on the second screenshot? Triangles, even long and tiny, aren't non-manifold geometry, though they aren't preferred most often. The easiest way to make flat face out of irregular shape on the first screenshot is to fill a face from it and triangulate it with Ctrl+T. Probably if you add information about why do you want that sphere segment to have a base face it would allow others to propose a different way.

Before triangulating, you need to close the hole. That's the problem. Download the blend, try as I described. That screenshot I did with select non manifold (from edge select) and T. The edges near the border are non manifold. Those problems arise from separating a mesh into parts and then having to set them back while keeping track of attachment vertices/zones. That mesh is a part of the head of mace that will be collected one by one by a player... hence the problem

This can be accomplished pretty easily with the knife tool.

I first positioned the object how I wanted it, and then pressed k, clicked on one point outside the mesh, then moved the mouse to the opposed side, and clicked to create a cut like the one above. Then all you need to do is delete all the vertices of the sphere to the right of the cut, and the knife tool will have created a smooth edge for your sphere segment.
One possible issue is that the knife tool only does the half of the sphere facing you. In that case, delete the half of the sphere you can't see, and use a mirror modifier to duplicate the side with the knife cut so it makes a full sphere again.
Final result:


text:
What select non manifold is for exactly?
I have some non manifold meshes to heal. And we have:
bpy.ops.mesh.select_non_manifold(extend=True, use_wire=True, use_boundary=True, use_multi_face=True, use_non_contiguous=True, use_verts=True)

    Select all non-manifold vertices or edges
    Parameters:

        extend (boolean, (optional)) – Extend, Extend the selection
        use_wire (boolean, (optional)) – Wire, Wire edges
        use_boundary (boolean, (optional)) – Boundaries, Boundary edges
        use_multi_face (boolean, (optional)) – Multiple Faces, Edges shared by 3+ faces
        use_non_contiguous (boolean, (optional)) – Non Contiguous, Edges between faces pointing in alternate directions
        use_verts (boolean, (optional)) – Vertices, Vertices connecting multiple face regions

I cannot figure the meaning of all options exactly. Can someone please tell me?
EDIT: Let's see... maybe that was too broad.
use_wire: edges without faces
use_boundary: edges with one face only
use_multi_face: edges with 3+ faces
use_non_contiguous: edges with one face turning back to the other
use_verts: ???

extend=True adds to the current selection, whereas extend=False replaces the selection.
Those use_xxx bools are different reasons why a part of the mesh can be non-manifold, and allow the user to select specific cases.


text:
how to find back faces with python
How to find faces pointing inward with a python script which uses Blender sdk?
AN example:

Normally I trigger "backface culling" and select points/face by visual inspection:

Then I delete the selected geometry, which leaves a hole:

And finally I do a F-fill:

In short, I'm asking if there's a way to select backfaces without a visual check, using python. There's an answer here by Zeffii, but it is related to a camera view, while I'm looking for something topology-related...
Thank you.
EDIT: how I did it.
get the blend
Open the blend, and select the partial sphere:

Now enter select edges, the Select non manifold (ctlr-alt-shift-M), then F or Alt-F for filling it. The result is:

How to heal that?

Related https://blender.stackexchange.com/questions/72647/select-object-and-recalculate-normals-via-script

Thank you. Sadly recalculating normal has no effect; that face is legitimate, just lies over another one, extruding out into a bad topology...

If the problem is not backfacing, you need to logically break down the problem with topology you want to fix before you can find a way to programmatically detect the cases. The geometry is non-manifold, you have edges that only connect to 1 face. Is this what you want to find?

I posted some more info. It's not clear to me, I think it's creating overlapping faces with different orientation...


text:
How do you create curly hair with curves using the hair asset pack?

I'm designing a character with hair like this. He pretty much has little curls going in every direction. I would just like to know if there's a more efficient way to generate a bunch of hair curls without having to comb the hair curves individually.
Btw, I'm using hair curves in Blender 3.6. Is there anything I can use in their hair asset pack? Thank you.

We don't usually ask questions like "how to do this?" or "why doesn't it work?" here, please make your questions easy to understand and make sure that the question has not already been answered by someone else.
You can also watch the official Blender 3.5 Hair System Tutorial.

I have attached the .blend file to my answer so that you can test it to see if it matches the look you are trying to achieve.

You can use a Clump Hair Curves modifier in Blender 3.5's new hair system.
Select the Mesh, add an empty Hair, add the Generate Hair and Interpolate Hair modifiers, set the values your PC can handle.
Add the Clump Hair modifier and set its values.
To get a curly look, add the Curl Hair Curves modifier.
If you want to manually comb curves you need to apply the "Generate Hair Curves" modifier.

I followed your instructions and got the EXACT look I was going for! Thanks a lot

Glad you found it helpful, you can combine different nodes to get more interesting results.


text:
Vertices jump away when scaling or transforming
I select it as normal

And then this happens.

I've had this happen to me a few times before. It seems to just show up when it feels like it.
Any idea what this could be? Thanks.

hello, hard to say, maybe share a video or share your file: https://pasteall.org/blend/

Here you go https://pasteall.org/blend/1899270feacc4fcca7f7246b0632689f

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

Its useful when you share screenshots to include the window decorations, if someone had seen the X axis mirror on in the window decoration they may have been able to answer without seeing the blend file.

it's the Topology Mirror option in the Options panel, under Mirror XYZ, I'm not sure how this option is supposed to work, maybe use a Mirror modifier or sometimes Mesh > Symmetrize instead? If you Mesh > Symmetrize, the Mirror XYZ alone will work.

That was the fix, thank you!


text:
Sudden unwanted change in light intensity in cycles
Im working on a project and came across a problem with cycles.
I have a turntable render of my building which is mostly ok, but at a certain point the lighting inside of the building (mostly lit by indirect lighting) has a sudden flicker. This is persistent regardless of the number of light bounces, number of samples or denoising or not. Also it is always at the same frame. The scene is lit only by HDRI.
Any idea what could be causing this as it is driving me nuts.
Thanks guys
Edit:
Thanks for all the answers, i figured it out meanwhile that it was the camera fog causing those flickers. Cheers everyone
Mosque turntable
(Flicker occurs in the first 2 seconds of the vid)

are you rotating the turntable or the camera?  If you frame by frame (Vimeo: hold SHIFT down while using left and right arrow) you can see the shading change in a way that looks like something has started casting a shadow.

Hi, thanks for replying, it is the camera rotating and everything is static in the scene. Could it be some render setting in cycles which i missed?

I don't think you missed anything.  I think that you're see the shadows change as certain light sources are blocked from the camera because of math.  You would see similar shadow changes in a building if you walked around outside it looking through the windows.  It's unfortunate that the changes last such brief periods that they look like flicker.  Could you cheat with a bit more ambient light?

I agree with @JohnMC Please upload your blend file to your question (How to add a blend file)

Thanks for all the answers, i figured it out meanwhile that it was the camera fog causing those flickers. Cheers everyone