text:
Is it possible to use custom class for UIList?
I am trying to use the template_list() function to create a UIList for an addon. I have some custom data that I want to be interactable through that. However, I do not even know where to start with this. All the examples I've seen use object or scene as the data pointer in template_list(). I am looking to use my own class for this, but am not sure if it's possible.
What I tried to do so far was to:

Register CollectionProperty with my custom slot class under bpy.types.World (which already fails so I don't know how to do this otherwise)
Register IntProperty the same way for active index (code doesn't even get that far)
Create a class extending UIList that draws what I need
Call layout.template_list("MyUIListClass", "", world, "slots_property", world, "active_index_property", rows=rows)

So far am running into
Debug client attached.
TypeError: CollectionProperty(...): expected an RNA type, failed with: RuntimeError: , missing bl_rna attribute from 'type' instance (may not be registered)

and I'm honestly lost as to what exactly I'm doing wrong or how else I could approach this. Any input would be welcome.

https://sinestesia.co/blog/tutorials/using-uilists-in-blender/ This should get you started with UIList in blender python

Thank you for this very handy resource, @PavanBhadaja

I don't think you can. What you can do is using a pointer property for bpy.types.World, see the second example here: Create an interface which is similar to the material list box.

The code is a bit long, but that's because it has a lot of explanatory comments; but here's an example of a complete addon that creates a custom class for a UI List.
The key features of such a class is that it has to inherit from PropertyGroup and that it must be registered using bpy.utils.register_class.
As a bonus it includes an editor and a filtering example.

# Based loosely on https://sinestesia.co/blog/tutorials/using-uilists-in-blender/
# https://docs.blender.org/api/current/bpy.types.UIList.html

bl_info = {
    "name" : "Annotated UI List Example",
    "description" : "Example of UI List functionality",
    "author" : "Marty",
    "version" : (0, 0, 1),
    "blender" : (2, 93, 0),
    "location" : "View3D",
    "warning" : "",
    "support" : "COMMUNITY",
    "doc_url" : "",
    "category" : "3D View"
}

import bpy
from bpy.types import Panel, Operator, UIList, PropertyGroup
from bpy.props import IntProperty, StringProperty, CollectionProperty

#-----------------------------------------------------------------------------
#
# An extremely simple class that is used as the list item in the UIList.
# It is possible to use a builtin type instead but this allows customization.
# The content is fairly arbitrary, execpt that the member should be
# bpy.props (ToDo: Verify this.)
# Since it contains bpy.props, it must be registered.
class ListItem(PropertyGroup):
    """Group of properties representing an item in the list."""

    name: StringProperty(
           name="Name",
           description="A name for this item",
           default="Untitled")

    prop2: StringProperty(
           name="Any other property you want",
           description="",
           default="")

#-----------------------------------------------------------------------------
#
# https://docs.blender.org/api/current/bpy.types.UIList.html#bpy.types.UIList
# The actual UIList class
# This class has a filter function that can be used to sort the properties
# into ascending or descending order using their name property.
class TOOL_UL_List(UIList):
    """Demo UIList."""
    bl_idname = "TOOL_UL_List"
    layout_type = "DEFAULT" # could be "COMPACT" or "GRID"
    # list_id ToDo

    # Custom properties, used in the filter functions
    # This property applies only if use_order_name is True.
    # In that case it determines whether to reverse the order of the sort.
    use_name_reverse: bpy.props.BoolProperty(
        name="Reverse Name",
        default=False,
        options=set(),
        description="Reverse name sort order",
    )

    # This properties tells whether to sort the list according to
    # the alphabetical order of the names.
    use_order_name: bpy.props.BoolProperty(
        name="Name",
        default=False,
        options=set(),
        description="Sort groups by their name (case-insensitive)",
    )

    # This property is the value for a simple name filter.
    filter_string: bpy.props.StringProperty(
        name="filter_string",
        default = "",
        description="Filter string for name"
    )

    # This property tells whether to invert the simple name filter
    filter_invert: bpy.props.BoolProperty(
        name="Invert",
        default = False,
        options=set(),
        description="Invert Filter"
    )

    #-------------------------------------------------------------------------
    # This function does two things, and as a result returns two arrays:
    # flt_flags - this is the filtering array returned by the filter
    #             part of the function. It has one element per item in the
    #             list and is set or cleared based on whether the item
    #             should be displayed.
    # flt_neworder - this is the sorting array returned by the sorting
    #             part of the function. It has one element per item
    #             the item is the new position in order for the
    #             item.
    # The arrays must be the same length as the list of items or empty
    def filter_items(self, context,
                    data, # Data from which to take Collection property
                    property # Identifier of property in data, for the collection
        ):

        items = getattr(data, property)
        if not len(items):
            return [], []

        # https://docs.blender.org/api/current/bpy.types.UI_UL_list.html
        # helper functions for handling UIList objects.
        if self.filter_string:
            flt_flags = bpy.types.UI_UL_list.filter_items_by_name(
                    self.filter_string,
                    self.bitflag_filter_item,
                    items,
                    propname="name",
                    reverse=self.filter_invert)
        else:
            flt_flags = [self.bitflag_filter_item] * len(items)

        # https://docs.blender.org/api/current/bpy.types.UI_UL_list.html
        # helper functions for handling UIList objects.
        if self.use_order_name:
            flt_neworder = bpy.types.UI_UL_list.sort_items_by_name(items, "name")
            if self.use_name_reverse:
                flt_neworder.reverse()
        else:
            flt_neworder = []

        return flt_flags, flt_neworder

    def draw_filter(self, context,
                    layout # Layout to draw the item
        ):

        row = layout.row(align=True)
        row.prop(self, "filter_string", text="Filter", icon="VIEWZOOM")
        row.prop(self, "filter_invert", text="", icon="ARROW_LEFTRIGHT")

        row = layout.row(align=True)
        row.label(text="Order by:")
        row.prop(self, "use_order_name", toggle=True)

        icon = 'TRIA_UP' if self.use_name_reverse else 'TRIA_DOWN'
        row.prop(self, "use_name_reverse", text="", icon=icon)

    def draw_item(self, context,
                    layout, # Layout to draw the item
                    data, # Data from which to take Collection property
                    item, # Item of the collection property
                    icon, # Icon of the item in the collection
                    active_data, # Data from which to take property for the active element
                    active_propname, # Identifier of property in active_data, for the active element
                    index, # Index of the item in the collection - default 0
                    flt_flag # The filter-flag result for this item - default 0
            ):

        # Make sure your code supports all 3 layout types
        if self.layout_type in {'DEFAULT', 'COMPACT'}:
            layout.label(text=item.name)

        elif self.layout_type in {'GRID'}:
            layout.alignment = 'CENTER'
            layout.label(text="")

#-----------------------------------------------------------------------------
#
# An extremely simple list add operator
# Replace context.active_object.demo_list with the actual list
class TOOL_OT_List_Add(Operator):
    """ Add an Item to the UIList"""
    bl_idname = "tool.list_add"
    bl_label = "Add"
    bl_description = "add a new item to the list."

    @classmethod
    def poll(cls, context):
        """ We can only add items to the list of an active object
            but the list may be empty or doesn't yet exist so
            just this function can only check if there is an active object
        """
        return context.active_object

    def execute(self, context):
        context.active_object.demo_list.add()
        return {'FINISHED'}

#-----------------------------------------------------------------------------
#
# An extremely simple list remove operator
# Replace context.active_object.demo_list with the actual list
# It's only possible to remove the item that is indexed
# The reorder routine keeps track of the index.
class TOOL_OT_List_Remove(Operator):
    """ Add an Item to the UIList"""
    bl_idname = "tool.list_remove"
    bl_label = "Add"
    bl_description = "Remove an new item from the list."

    @classmethod
    def poll(cls, context):
        """ We can only remove items from the list of an active object
            that has items in it, but the list may be empty or doesn't
            yet exist and there's no reason to remove an item from an empty
            list.
        """
        return (context.active_object
                and context.active_object.demo_list
                and len(context.active_object.demo_list))

    def execute(self, context):
        alist = context.active_object.demo_list
        index = context.active_object.list_index
        context.active_object.demo_list.remove(index)
        context.active_object.list_index = min(max(0, index - 1), len(alist) - 1)
        return {'FINISHED'}

#-----------------------------------------------------------------------------
#
# An extremely simple list reordering operator
# Replace context.object.demo_list with the actual list
class TOOL_OT_List_Reorder(Operator):
    """ Add an Item to the UIList"""
    bl_idname = "tool.list_reorder"
    bl_label = "Add"
    bl_description = "add a new item to the list."

    direction: bpy.props.EnumProperty(items=(('UP', 'Up', ""),
                                              ('DOWN', 'Down', ""),))

    @classmethod
    def poll(cls, context):
        """ No reason to try to reorder a list with fewer than
            two items in it.
        """
        return (context.active_object
                and context.active_object.demo_list
                and len(context.active_object.demo_list) > 1)

    def move_index(self):
        """ Move index of an item while clamping it. """
        index = bpy.context.active_object.list_index
        list_length = len(bpy.context.active_object.demo_list) - 1
        new_index = index + (-1 if self.direction == 'UP' else 1)

        bpy.context.active_object.list_index = max(0, min(new_index, list_length))

    def execute(self, context):
        alist = context.object.demo_list
        index = context.object.list_index

        neighbor = index + (-1 if self.direction == 'UP' else 1)
        alist.move(neighbor, index)
        self.move_index()
        return {'FINISHED'}

#-----------------------------------------------------------------------------
#
class TOOL_PT_Panel(Panel):
    """ Tool panel to demonstrate UIList
    """
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Tool"
    bl_idname = "TOOL_PT_Panel"
    bl_label = "Panel UIList"
    bl_description = "Demonstration of UIList Features"
    bl_options = {
        'HEADER_LAYOUT_EXPAND',
    }

    def draw(self, context):
        """ Draw a UI List and its controls using the same format used by
            various UI Lists in the user interface, such as Vertex Groups
            or Shape Keys in the Object Properties Tab of the Properties
            Editor.
        """

        # The list is attached to an object.  Each object can have its own
        # Unique list; so the logic of the panel is to use the list associated
        # with the active object.
        object = context.active_object

        # Since we're in the View3d UI it might be useful to remind the user
        # what object they're currently interacting with.
        row = self.layout.row()
        row.alignment = "CENTER"
        row.label(text=object.name)

        # There are two rows.  The first row contains two columns.
        # The column on the left has the actual template_list.
        # The column on the right has the controls for editing
        # the list as a list.
        row = self.layout.row()
        row.alignment = "CENTER"

        if object:
            # The left column, containing the list.
            col = row.column(align=True)
            col.template_list("TOOL_UL_List", "The_List", object,
                              "demo_list", object, "list_index")

            # The right column, containing the controls.
            col = row.column(align=True)
            col.operator("tool.list_add", text="", icon="ADD")
            col.operator("tool.list_remove", text="", icon="REMOVE")

            # Only display the movement controls if the list is long enough
            # to justify movement
            if len(object.demo_list) > 1:
                col.operator("tool.list_reorder", text="",
                    icon="TRIA_UP").direction = "UP"
                col.operator("tool.list_reorder", text="",
                    icon="TRIA_DOWN").direction = "DOWN"

            # The second row, containing the individual fields of the
            # list item so that they can be edited.  A row works for
            # the case of two small items but a more complex layout will
            # be necessary for more sophisticated list items.
            #
            # Shape Keys provides an example where a column is a better
            # choice than a row and the column's layout depends on the
            # position of the active item on the list.
            #
            # Shape Keys also provides an example of editing in the template
            # list.  That's not covered in this file.
            row = self.layout.row()
            if object.list_index >= 0 and object.demo_list:
                item = object.demo_list[object.list_index]

                row = self.layout.row()
                row.prop(item, "name")
                row.prop(item, "prop2")

#-----------------------------------------------------------------------------
#
classes = [
    ListItem,
    TOOL_UL_List,
    TOOL_OT_List_Add,
    TOOL_OT_List_Remove,
    TOOL_OT_List_Reorder,
    TOOL_PT_Panel,
]

def register():
    for c in classes:
        bpy.utils.register_class(c)

    bpy.types.Object.demo_list = CollectionProperty(type = ListItem)
    bpy.types.Object.list_index = IntProperty(name = "Index for demo_list",
                                             default = 0)

def unregister():
    del bpy.types.Object.demo_list
    del bpy.types.Object.list_index
    for c in classes:
        bpy.utils.unregister_class(c)

if __name__ == '__main__':
    register()


text:
Issue with Clay Strips - Subtracting?
I'm new to Blender (using 2.91) and have been playing around with the sculpting.  I am having an issue with the clay strips brush.  When I use it on the front, it seems to be subtracting from the back.  I've tried to include two images to show what I'm talking about.  I've checked the normals and everything seems to be fine there but my knowledge is very limited.  What is going on?  Any help is greatly appreciated!

That's how it works, similar to draw brush I believe. Inflate brush won't make any problem (correct me if I'm wrong?)

Oh, and I believe it will only occur if two (connecting) faces located near each other, maybe add a cube, subdivide it and see if same thing happened.

The draw and inflate brush do what I expect on there.  I made a cube, subdivided it, and when I used the clay strips I didn't get the same issue as above.

source: Stack Exchange

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

sort: votes


text:
how do I add these sub panels to a panel in my addon?

I know how to make a basic bpy.types.Panel, but how do I add these sub panels?

A sub panel like shown above is a complete panel object which includes a bl_parent_id reference to the upper panel.

that works! thank you so much :3

@Ratt can write that as an answer

Does this answer your question? How do a create a foldout UI panel?

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


text:
create new window/area for blender
example: animation nodes addon; creates a new window so that you can edit your animations (or whatever they're called) in called the animtation node editor.
does anyone know how I can make my own window/area (if you dont know what i mean, examples of window/areas: 3d view, shader editor, geometry nodes etc)

This is super easy, and it’s talked about in docs.blender.org

could you send a link? i don't know what to look for

You can create custom node editors, but you can't create any other custom editor type afaik.

Are you trying to create a new window with a specific editor in it, or create a new type of editor with the python API?


text:
Animation node - How to change the shading (smooth or flat) of a series of splines?
I managed to create an animation with concentric circles in animation nodes, made from points in a circle that I duplicated inside an object output. I want to change the shading of the splines (normally in the active spline pane, the smooth toggle) to flat. I can't find a way to do this inside of animation nodes. It's not in the properties of the spline from points node, neither in the Object output. Is there a way ?

Not sure if I understand your issue. If you want a more "flat" spline, you could just bring the "Resolution U" value (in "Active Spline" panel) down - which can be animated.

It's when I use and object for the bevel, the edges of the splines are smooths, even though my bevel object has hard edges. Keep in mind that the splines are generated in animation node and the «smooth» toggle in the active spline panel can't be toggled it seems, it's stuck when AN is running.


text:
Problem with sample curve points and animating to a random position sequentially
I have this node setup:

The problem I'm facing, the first points on the curve are already moved away from the curve:

I want all the points to be at their origins (placed on the curve). Then I want to animate them sequentially from first to last.
I played with all sorts of values in the map range node, I can get it almost correct, but then it lacks in smoothness when animating the factor value of the sample curve: the points snaps to their final positions (displaced by the noise texture) instead of interpolating smoothly.

I found the solution. Instead of sampling the position of the points and subtracting them from the position, I'm using the indexes to get their position and playing with the indexes to map the factor of the mix vector. Not sure this is clear, but check out the node setup, it works for me.


text:
Looping an animated spline trim curve with a small delay for the start in geometry nodes
I'm having trouble looping an animation on a trim curve for a spline with geo nodes.
I basically want the end of the trim to go from 1 to 0, then wait (a little delay) for the start to go for 0 to 1, so it looks like a segment is moving. Eventually, I'll apply this for multiple splines all moving at their random speed. (but I think I can manage to do that). I keep trying and no success. I think I don't master math and modulo enough.
Like in this example:  https://i.sstatic.net/RBNuf.jpg

Hello and welcome. Instead of having users go through links and external sites please use the builtin tools to embed images in your post. See How to upload an image to a post? or GIFs

@DuarteFarrajotaRamos sorry about that, I wanted to post a video and didn’t think the builtin tools would have permit that.

with this node setup:

you will get this:

I did a bit commenting about the math in the nodes.
I think the green nodes are easy to understand, the tricky part might be the math.
The frame will be divided by 100. So the output of the divide will be 0.01, 0.02, 0.03 and so on. The fraction results just the decimals, so the value will never be 1.01, 1.02 but instead 0.01, 0.02. After that the interval will be extended by 1.3 so i have values now from 0 to 1.3 (ok 1.3 * 0.99 exactly) instead of 0 to 0.99. Then the length of the animated curve will be subtracted to define the start value of the trim curve (which can be from 0 to 1, that's why we subtract that 0.3 again to get the 0 at frame 0 (because we lengthen the interval before by 0.3 by multiplying it with 1.3). Now we just add the 0.3 again (the length of the curve) to set the end value. Easy right? ;)

Oh wow, I'm not quite sure I understand the idea behind all of the math, but will try to integrate that and create a node group out of it. Thnaks !

many ways to do it, but to offset in time the 'end' animation just add some value...
is that what you asked?

sorry, had to edit because the image was not clear... here's a little more complex version of same nodes, again it could be done in other ways, maybe show what you already have..? to offset the 'ending' just add some value to 'start' animation, to animate different splines just use their index to add some extra offset... I used a map range node to avoid calculations, but you were using pure math and modulo? may be some some better answers around already, didn't search

Thanks ! I think I managed to make it loop by inserting a modulo between the map range and the scene time, set to the max + the delay in the add node.

nice, had that example updated with exactly the same idea


text:
When using "Bake from Multires", the resulting normal map has odd pattern along topology
A very peculiar, corrugated pattern appears on the baked normal map from the Bake from Multires option.
Blendfile: https://pasteall.org/blend/53326714fd7e42ab966a58667ca05faf
Everything I've done:

4k Resolution
Non-Color Data
32-bit float
Smooth shaded geometry before applying the Multires modifier.

No matter how I rearrange the UV, it's the same strange result. From top to bottom in the images is the high poly, low poly, the baked normal map, the low poly with the normal map applied, and the weird pattern moving along the topology.

I just had this issue. I know it's months late but I was able to figure it out. In the multires modifier there's an "apply base" option that conforms the base to match the sculpt. This fixed the issue for me.


text:
How to create a gradient along the edge of an object procedurally?
I wanted a gradient effect along the edge of an object procedurally made, so that I could add two different colors, gradient used as a factor.
I don't know how the original was made, but I think I am going to use the scalable vector graph to make the maps. The topology may be in ngon. lastly I would like to render in EEVEE.

We need more details, how the generated object looks in regards to topology. In general, tricky subject; maybe this helps: Cycles nodes: is it possible to get distance to nearest edge?

If you're looking for this exact effect, you could fake it using Ambient occlusion and using different heights for your objects. Do you want to use eevee or cycles ?

The link given by @MarkusvonBroady creates what you want. The only thing you have to know is that to get the desired effect, the objects that make the country cannot be flat planes, you have to extrude them so that they have a thickness. Otherwise there is no edge for the Bevel node.


text:
Is it possible to make Dan Fessler's method of pixel art in the compositor?
Is it possible to make Dan Fessler video but uses Photoshop

It just got me thinking if it's remotely possible. It's got

Color/Gradient Ramp
Posterize
Black and White (RGB to BW)

But when I apply a dither pattern like this 16x16 pixels image →←, it only crops the output image down to the size of the dither pattern (16x16). How can the actual size of the rendered image be maintained?

Hi, welcome to BSE! While external resources are fine as complement to your question, they should not be a requirement for understanding. Your question seems pretty hard to follow without having to get out of BSE and watch a video, please [edit] your question to add more information about what you expect to have, and what you currently get instead, what you tried. Don't hesitate to use screenshots too. Editing will queue up your question for reopening.

There is a free pixel art add-on for Blender that could be helpful.


text:
Mirror texture; how to get rid of some unnecessary reflection
I'm rendering a scene with mirrors. Although, the reflection of the 3 hooks (highlighted) that are attached on the mirror are too sharp and clear. IRL it should be extremely subtle that you dont even see the color, but more like a shadow. How should I achieve such effect? Something to change with my mirror texture setting? Thanks

They are attached on the mirror but "IRL" the reflection should not be so sharp and clear and the color more like a shadow? But that's not how a mirror works "IRL", here is a photo of a mirror with keyholes and inserted keys: the reflections are quite sharp (execpt for the one in the back out of focus) and the color of the keys is there, too: mirror with keys If you don't want sharp reflections, don't set the Glass BSDF to Sharp - this option ignores the Roughness value. Instead switch it to either Beckmann, GGX or Multiscatter GGX.

...and why this ridiculous high IOR of 1000? If this is just to make the glass purely reflective instead of transmissive, a real mirror's reflective surface is a silver or aluminum layer behind the glass, not the glass itself (of course it reflects too, but the main part is the layer behind). So what you need as mirror is a Principled BSDF set to a white Base Color and Metallic to 1, then adjust the Roughness to your liking how sharp you want the reflection to be. To make it more realistic you can put a glass pane in front of it (but with a correct IOR). Or simply take a Glossy BSDF.


text:
Filled Mesh and Hollow Mesh, how does it work?
I'm trying UE5 to visualize my model made in Blender. Now, theres a vizualization mode called distance field which shows nearest surface of a mesh. However, for some reasons, some meshes are shown as an empty mesh. Its true that when I was modeling in blender, I didnt extrude some meshes, but created by connecting faces from vertices. Would that make this mesh as a hollow mesh?
Im trying to understand the concept of a hollow mesh and a solid mesh. Thanks

Just a first thought, not tested. Check normals, manifold mesh, in a similar way you would for printing? Maybe the shipped 3D-Print Toolbox add-on will help you out


text:
Bones displayed as sticks in edit mode don't appear selected
This might be a silly one but for the life of me I couldn't find an answer while googling. I'm doing a rigging tutorial and the author changes his bones to be displayed as sticks and they look pretty clear, but after I do it, they're all black and in edit mode I can't tell if I selected the bone or not  any idea on what's going on? The tutorial guy is using 2.8 and I'm on 3.6 but the default stick display can't be that hard to read can it?

It should appear yellow when selected, could you please share the armature so that we can test?

Are there overlapping bones?

There are no overlapping bones. Here's my file: https://we.tl/t-BP3AwzodDs BTW the same thing happens when I create a single bone in a new file. Maybe a bug?

I've updated Blender, created a new file, added a single bone and that's how it looks selected with stick display in edit mode. https://ibb.co/XVpc8yn It's like it's selected but there's some noise on it? I'm lost.

Ok I think it's a bug. This is exactly what happens in my case: https://projects.blender.org/blender/blender/issues/108575

I can select the bones in the file you share, so I'm not sure what's happening for you


text:
Change color of Passive rigid body when collide with active rigid body?
Is there a solution for my issue:
I have 1 active rigid body and 30 passive rigid bodies.
When active rigid body collides with the passive body then I would like to change passive rigid body color at random.
Would this be possible somehow?
I'm newbie in blender but keen to learn!
At the moment I do manually change the color via keyframes and surface emissions, but this is time consuming.
This is not a duplicate or similar to the post : thread here!

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Solution for all cases may not be easy. Please provide an example of your scene, type of objects (shapes) and what kind of simulation you are running.

and you should elaborate why this is NOT a duplicate. The way you write this question is for me a clear duplicate of the link you provide, sorry. Then tell us the difference!

Does this answer your question? Mix colors from different objects at collision (Rigid Bodies and Particles)

Hello, Stag, welcome  .. it would justify your post, and help us aim accurately at the right answer for you, if you explained  why your question is not the same as the suggested duplicate.


text:
Blender Smoke / Lense Effect Cards like in Photoshop
I was wondering if there is a way to import an image sequence (something like smoke) that does not have transparency into blender and set the blending mode of that to add like in Photoshop for example. So i archive a kind of transparency in that way.

This question is similar to: How can I remove black backgrounds from fire stock images to use in material with transparency?. Note that in the answer there it is explained why just using a greyscale value of the brightness like in the answer below is not the optimal solution for things like fire.

I made this quick fire simulation as an example:

To import the image sequence, the easiest way is to use the addon Import Image As Plane (enable it from the menu Edit > Preferences > Addons).
Menu File > Import > Image As Plane, select your images and set the following options:

In the shader editor, you should see your image texture node plugged into the Principled BSDF Node. Plug the texture's color output to the Principled's Alpha input. Then, add a Separate Color node and a Color Ramp node, drag them on the noodle you just created, and set the Separate to HSV and plug its Value socket. It should look as follows:

What we did here is get the "Value" data of the image sequence (the black/white), and use it as alpha. The color ramp allows you to control that alpha. Move the white stop to the left to include "more", and move the black stop to the left to include less. You can add a stop in the middle to manage the transition.

Note that what you see greatly depends on what's behind. The smoke might not be easy to see on a white background but visible on a black one:

Which version of Blender are you using? My answer is made on v3.6.5.

These setting were added back in v3.4 that was released in December 7th 2022.

Actually I think the answer I gave on my duplicate question a few months earlier works much better for fire at least...

Mix Node in Compositor
You could use Blender's Compositor to combine your render with your smoke card with a Mix node. The Mix node has the different blend modes you mentioned.


text:
Shading Artifact
I need help with diagnosing and fixing this shading artifact. Pictured is the model with the shading areas in question along with the mesh. Thank you.

Hello could you please share the object? https://blend-exchange.com/

@moonboots

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

It's not a shading problem, you have inner faces, as soon as you give your object a Subdivision Surface modifier it makes them surface through the outer faces, so the best is probably to remove them:

Message to Gorgious: Select All by Trait > Interior Faces won't work in that cases as these inner faces are connected to the outer   ;)


text:
Storing a CollectionProperty in the whole .blend file scope
I'm working on an addon where now I am trying to store a CollectionProperty (containing custom PropertyGroup class elements) in a .blend file globally, as in there is one such property in the .blend file. So far I haven't had issues storing properties on a per-world, per-object or per-scene basis. But what I am trying to achieve is more like a data collection. Something similar to images, meshes, materials etc. How can this be done?

Long story short it can't be done like that. Here's a recent discussion exploring possible workarounds https://blenderartists.org/t/custom-properties-that-need-to-be-accessed-by-all-scenes/1359734


text:
2-Way Property Link (Or a Filtered Property Display)
I have learnt that it's possible to link 2 properties with drivers by adding a driver and creating variable that comes from another object's property. This allows me to update one property by modifying the other. However, this works only one-way and locks the first property from being changable directly.
In my case I have a way to represent rotation of sun (elevation, azimuth) where they're expressions of sun's x and z euler rotations (elevation = PI / 2 - sun.rotation_euler.x, azimuth = PI - sun.rotation_euler.z). These properties are used for more convenient controls of the sun in the UI for my use case. However, I have run into an issue of being unable to link them the way I want. Essentially, I need sun's rotation to match these values, but these values also to match sun rotation, as in if you rotate the sun object, these numbers change, but if you change these numbers, the sun rotates. I am wondering if it's possible to do this. Perhaps instead of using a separate property, is there a way to display an existing property (in this case sun.rotation_euler's x and z channels), but filtered through an equation that works 2 ways?

Why 2-direction driver is not allow in blender?
Suppose there are 2 attributes control each other
attr_A.expression = attr_B + 1

attr_B.expression = attr_A * 2

when attr_B is 1, attr_A = 2 because attr_B is changed
Then attr_A control back to attr_B = 4 because attr_A is changed
It caused a Infinite Loop
Can computer auto get a Inverse function of a expression?
It can't. Because some function does not exist a Inverse function.
For example:
attr_A.expression = attr_B * attr_B

when attr_A = -2 or 2, attr_B = 4,
but when attr_B is 4, you don't know attr_A is -2 or 2
Is possible to do 2 attributes with interdependent relationship?
You can make properties in UI via script to control some value
Here is the clock example:

Run script to get the example scene

run script in text editor

import bpy, math
import mathutils
from mathutils import Vector

# go to object mode first
# select and delete all object
if bpy.context.object:
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action = "SELECT")
    bpy.ops.object.delete(use_global=True, confirm=False)

vec = Vector((0, 1))
rot = mathutils.Matrix.Rotation(math.radians(30.0), 2)
size = 0.05
for r in range(12):
    bpy.ops.mesh.primitive_uv_sphere_add(radius=1, enter_editmode=False, align='WORLD', location=(vec[0], vec[1], 0), scale=(size, size, size))
    bpy.ops.object.shade_smooth()
    vec.rotate(rot)

bpy.ops.object.select_all(action = "SELECT")
bpy.ops.object.join()
bpy.ops.mesh.primitive_plane_add(size=0.05, enter_editmode=False, align='WORLD', location=(0, 0.05, 0), scale=(1, 1, 1))
obj_short = bpy.context.object
obj_short.name = "short"
obj_short.rotation_euler[0] = math.pi / 2
md = obj_short.modifiers.new(type = "SOLIDIFY", name = "long")
md.thickness = -0.4
bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)

bpy.ops.mesh.primitive_plane_add(size=0.025, enter_editmode=False, align='WORLD', location=(0, 0.05, 0.04), scale=(1, 1, 1))
obj_long = bpy.context.object
obj_long.name = "long"
obj_long.rotation_euler[0] = math.pi / 2
md = obj_long.modifiers.new(type = "SOLIDIFY", name = "long")
md.thickness = -0.8
bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)

fc = obj_short.driver_add("rotation_euler")
dr = fc[2].driver
var = dr.variables.new()
var.targets[0].id = obj_long
var.targets[0].data_path = "rotation_euler[2]"
dr.expression = "var / 12"

## Create N-panel Category

def empty_fn(self): pass
def get_obj():
    try:    return bpy.data.objects["long"], bpy.data.objects["short"]
    except: return None, None

def fn_short(self): # sub function in update_fn_short
    obj_long, obj_short = get_obj()
    if obj_long is not None:
        upd_off()
        obj_long.rotation_euler[2] = math.radians(self.my_prop_short) * 12
        self.my_prop_long = math.degrees(obj_long.rotation_euler[2])
        upd_on()

def fn_long(self): # sub function in update_fn_long
    obj_long, obj_short = get_obj()
    if obj_long is not None:
        upd_off()
        obj_long.rotation_euler[2] = math.radians(self.my_prop_long)
        self.my_prop_short = math.degrees(obj_short.rotation_euler[2])
        upd_on()

can_short_upd = fn_short # sub function container
can_long_upd = fn_long
def upd_off():  # make sub function to a empty function
    global can_short_upd, can_long_upd
    can_short_upd = empty_fn
    can_long_upd = empty_fn
def upd_on():
    global can_short_upd, can_long_upd
    can_short_upd = fn_short
    can_long_upd = fn_long

def update_fn_short(self, context):
    can_short_upd(self)

def update_fn_long(self, context):
    can_long_upd(self)

class My_PT_Panel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "PANEL"
    bl_idname = "MY_PT_PANEL"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "My Category"

    def draw(self, context):
        self.layout.prop(bpy.context.scene, "my_prop_short")
        self.layout.prop(bpy.context.scene, "my_prop_long")

def register():
    bpy.utils.register_class(My_PT_Panel)
    bpy.types.Scene.my_prop_short = bpy.props.FloatProperty(
        name = "Short Rot",
        update = update_fn_short,
    )
    bpy.types.Scene.my_prop_long = bpy.props.FloatProperty(
        name = "Long Rot",
        update = update_fn_long,
    )

if __name__ == "__main__":
    register()

Find the Category in N-panel


text:
Can you duplicate Edge Loops to another part of an object?
I have created a design for a HDMI port (circled in red), and I want to copy the design/edge loops to the right of it. Is it possible to do this via any method?.
Thankyou in advance, its to be apart of a ASUS VG27AQ monitor for my first solo project.

Thankyou @common_goldfish. Your comment combined with some feedback from someone else helped a lot.
I didn’t follow exactly as you showed, but what you did gave my memory a good nudge as to how I could go about this.

Copying the vertices of the HDMI port and then using the "snap to
edge" function to keep the "New" HDMI port vertices in-line with the
first one worked well.

As my object is not symmetrical I just copied the vertices of the
HMDI port and not the entirety of the vertical loop cuts
(Duplicating the entirety of the loop cuts and then moving them
meant they were left dangling in the air),

I added loop cuts in afterwards, using "snap to vertex"
to align them to the relevant places.

I then used "Merge vertices by distance" to remove the doubles. (I
wanted to ensure I had the loops cuts as it kept all of the faces as
quads.)

Cool you found a solution with snap to edges and some new loop cuts.

One way:
You can create reusable patches with both faces and vertices.
1.It is a neater operation if you create an empty rectangular face where you can copy your vertices.
2.Turn on vertices snapping
3.In edit mode, select faces and vertices, and duplicate a patch of your geometry with  shift+d

Press Y or other axis, to snap and move the patch over to the empty space in the geometry where you want to copy.

5.Snap the corner vertices, and then press M merge them by distance.
6.Optionally you can make a duplicate,  select the hole patch and press P and then save the selection for later use.


text:
Assign Field on a Particle System Slot
I wanted to know if there was a way to assign a Field to a Particle System Slot,
I have 3 different Fields and I would like some to act individually on 3 different Particle Slots on the same emitter

@Chris
but look what blender himself calls it Particle system slot

Oh really? Where? Never saw that

if you stay with the pointer on the icon to add a particle system, it asks you if you want to add a new particle system Slot

Ah ok…didn’t know that

You can put your forces in collections.
Then you can use these collections in the particle settings as "effector collection". Only the forces in that collection will affect your particle system.
As you can see in the image i have two particle systems (red and blue), one has "Effectors1" as effector collection (red), so the particles react to my force field. The blue one has an empty collection as effector collection, so the particles just fall down without reacting to the force field.


text:
SVG file doesn't show up in blender

I made a vector image in Adobe Illustrator and exported it into a svg file.(I did my best to make the lines closed but please still check if there's any problem with the vector image.)
But when I import it in blender, nothing comes out. I also zoomed in but there was absolutely nothing on the editor. Neither scale didn't work. Weird thing is I can still see the list of curves of svg file in outliner.
I've even tried with simple circle shape but the result was same. Please give a help.

The object looks very small, try to zoom in or scale the object.

.. further to comment above, the curve dimensions are less than 0.0004 x 0.0004 x 0  .To make this the size of a 2 x 2 plane will need to scale by fifty thousand (50, 000)

Replicating your steps:
I vectorized your design and I saved it in SVG.
Imported in Blender and I noticed the svg comes too small.
Not so small as yours.
I entered Edit mode Tab, then Select all A, then S, then 50 and finally Enter.
This made it big enough.
In your case, I think S, 200 could be enough.
See the image below:

sorry for the late comment. I followed your explanation and it worked. Thank you so much for your help!


text:
Edge being hidden by face
Accidentally deleted an edge, then I added an edge loop. But the face hides the edge. How can I get rid of this? Will only show if I drag x axis smaller.

Use this link to send the file for analysis: https://blend-exchange.giantcowfilms.com/

z puts the view into wireframe mode.


text:
Is there a shader like this in blender CCTV
Looking around blender texturer and can't find anything that does this shader https://www.youtube.com/watch?v=_Q2wFjitpZ0
Also looked in python camera stuff and found nothing that I can even recognize as a camera shader.
Can anyone point me to a shader or some blender python code that can get me at least on right road to make a shader like this?

Hello :). Please add some images and a detailed description of what you're after.

Does this answer your question? Project scene to plane in real-time - TLDR is that in short, no, you cannot use a camera view as a texture on another object in real-time in blender. There are ways to "cheat" this, outlined in the linked answer, but it will still not be the "real thing".


text:
Viewport rendered camera differs from rendered camera, which is like fish-eye
I have scene motion tracked. Can't understand why rendered image (like fish-eye lens) differs so much from rendered picture in viewport mode?

Have you set something in the Compositor?

If you are using lens distort in the compositor it could be the reason for the Error.
If not, id recommend you to use a lens distort node to temporarily fix the problem by using it as a counter part.

Thanks! Yes, there was: https://blenderartists.org/uploads/default/original/4X/b/5/1/b513687b26d74e21f757b6ee655592a3bf563920.jpeg


text:
PBR texture showing up on the wrong side of plane
I'm rather new to PBR textures, so this question might seem dumb.
So, when i put a pbr texture onto my model, it showed the underside of the texture instead of the top on the side which is visible.
The side where it is supposed to be but has the underside of the texture show up instead:

.
.
The top, which is not visible, has the texture displayed correctly:
.

How do i go about fixing this? I can't flip the planes.

Is the normal of this face pointing correct way?

Blender uses OpenGL shading, and your normal maps may be DirectX based. If this is the case, there is a simple conversion you can do to fix it.

@ChristopherBennett Im pretty sure its showing uo fine and is doing what it is supposed to. My problem is that i want to change the side the texture is facing

Push..............................


text:
Inlay planar mesh onto curved mesh
I am unsure if this is something that is possible, but I have 2 meshes, a planar mesh and a curved mesh. I want to project the planar mesh onto the curved mesh, inlaying it so that it is raised or depressed by the same amount on all sides.
I have tried a bunch of different boolean operations to get this to work but nothing has looked right, the sides are always cut way deeper than the top. Any suggestions?
I have attached an image of what I am looking at right now.

It seems like the shrinkwrap modifier is what I am looking for, seeing if I can get that to work now

do you have an image of the final object it should create?

I don't. Easiest way to describe it would be if the planar mesh was a blanket and gravity pulled it down over the bottom mesh

what happens to the sides of the object? Is the circuit supposed to wrap around the rectangular object? If only the top needs to be "printed", you could use the Knife Project tool

In order to avoid a ton of geometry, it might be more efficient to shoot your PCB as a texture, and UV map it onto the surface? If you did need the geometry, you could still use it in a Displace modifier

Sadly I need the geometry, it is for a 3D printing project. Displace works really well for this though, just a lot of subdivisions needed. Thanks!


text:
How to disable Background layer rendering?
I’ve done tracking of the footage, and I’ve setup the tracking scene.
As you probably know, once you setup the tracking scene, Blender automatically creates two “Render Layers” nodes in the compositor. One node is for the “Foreground” layer, as shown in attached screenshot, and the other is for the “Background” layer.
Also, Blender creates two collections in the outliner: foreground and background. Background consists only of “shadow catcher” plane.

The problem is, Blender is rendering separately those two layers / collections, which doubles my rendering time, and since I have very simple scene, that is in fact just a waste of time for me. I want to do all the rendering in a single pass.
I’ve tried deleting the background “render layers” node, and deleting the “background” collection, but still, when I try to render the scene, it always renders both foreground and background, although the background literally doesn’t exist anymore in my file. At least, I’m not aware of it.
I’m sure I’m missing some simple solution.
Help!

I have the same issue. It is really annoying. I will post an answer if I run across anything.

I had the exact same issue, and I couldn't find an answer anywhere. Here is what worked for me.
Go into Layer Properties in the righthand Properties panel. Then go into view layer and check Render Single Layer. This immediately solved the problem for me.

It is at the very top right of your Blender window
Remove one of it to stop rendering two layers

Have you tried going into the Render Properties > Film and ticked the box which says Transparent?
This will make the background of the render transparent so all you can see if the objects that you've added/created

Hi! Thanks, but that option has been turned on all the time and it doesn't affect the issue I have with the rendering.

I guess being under "film" is as good of a place as any, didn't make sense to me, figured there'd be an option to hide the background from rendering under Camera or World Properties?  So glad I found this answer, thank you!

I know this might come late, but what helped me was in the compositor node, I removed the node that had the background from the mix of the final render.
So now it's just a mix of the foreground and the shadow catcher. Helped a lot


text:
How to assign shortcut to Snap menu
I wanted to assign similar hot keys on Snap menu and setting Origin menu  like shift + f1 and ctrl + f1 since you can't add Origin menu to Quick Favorite
After seeing this question, I managed to make it for setting Origin, but I couldn't for Snap

I only found those on google
bpy.ops.view3d.snap_cursor_to_active()
bpy.ops.view3d.snap_cursor_to_center()
bpy.ops.view3d.snap_cursor_to_grid()
bpy.ops.view3d.snap_selected_to_active()
bpy.ops.view3d.snap_cursor_to_selected()
bpy.ops.view3d.snap_selected_to_cursor
which are options under Snap menu.
I hope there's a way to round them up as one shortcut button (not as a quick favorite menu)

Doesn't SHFT+S work for opening the snap menu?

@Nate_Sycro27 thats a pie menu which disappears if you release shift first

fill that empty blank with "action.snap", which will bring you that menu.

@Nate_Sycro27 it doesn't bring that menu. it seems its related to animation snapping which has sub menu for Current frame.

To set the snap menu in Blender, you must open Blender preferences, and go to the input tab.
In the search blank, type "snap keys". One result-snap keys should show up. As you showed in the picture, the blank for controlling this action with a shortcut was empty. If no results show up, then make a new shortcut with these settings:


text:
How do you make edges parallel?

When I add edge loop to this, angle is already broken. How do you make 1 and 2 edge loops parallel each other?

You image is appreciated.  Showing The headers and footers will tell the reader more.

Whether or not you have just created it, if you want to make an edge-loop parallel to an adjacent one, slide the loop with GG. Now hitting E will make the loop parallel to one side or the other. Hitting F will flip which side. Hitting E again will revert to the default behaviour: interpolating between its original orientation, and whichever edge you are sliding towards.

Assuming you used CTRL-R Loop Cut
In edit mode
After loop cut is finished. Scale along an axis with number 0.  Hopefully X or Y or Z will work.
sx0
sy0
sz0
or use
[Knife Cut] kwith cut through ON  z
the keystrokes are also indicated in the 3D View

Knife cut image above.  Unfortunately the screen capture did NOT capture the little knife cursor.  The lower left shows the Knife Topology tool panel.
youtube has video tutorials on knife cut which will save you time.
BSE can be searched for Knife Cut.


text:
Resetting location doesn't work

alt + r, g doesn't reset. after in and out in edit mode same weird rotation problem occurs.

You have keyframes on your bones. You can examine them in the action editor, which you have opened on the left side.
After resetting the transformations, you are entering edit mode, then entering pose mode. On reentering pose mode, the fcurves are reevaluated. Since the keyframes are extrapolated horizontally your pose bones have values.
Remove the keyframes to completely reset the transformation. Or reset the transformations and create new keyframes with I.


text:
How to override all multiple keyframes at once?

Hello. Is there anyway you can override multiple keyframes at once? I need to apply rotation of just one bone in all the frames.
I could click each frame and pasted its rotations value. But I assume theres a better way to do this.
Thank you.

I'm not sure it's what you want but let say you want your object to be rotated on its X axis all along the animation: Open the Graph Editor, lock all the tracks, unlock the track on which you want to make your operation (X Euler Rotation), select all (as everything except the X Euler Rotation is locked it will only select the X Euler Rotation curve) and move it on the Y axis of the Graph Editor (G Y) until it is rotated the way you want it to be.


text:
Subdivision Surface with a hard edge
problem
Hi.
I added the side of inside sink later and sub surf causes problem. even if I put loop cuts to align the lines(vertical side) it doesn't help.
https://blend-exchange.giantcowfilms.com/ doesn't work for me so I leave the file in google drive address. https://drive.google.com/open?id=1hqZDeiltItw2UUwfPcbUuI6SbGw_IiKi
Thank you

I can't seem to open your file, but from the pictures you've provided, I tried to recreate the problem and possibly solve it here:
https://youtu.be/S1x6OycmPD0
In the video you can see me going inside the mesh to check if there are any faces on the inside. Make sure to remove them if you see any on yours. Then I select all and clicked "Remove Doubles".
Let me know if the problem persists

No problem. Have a good day :)


text:
How do you move a face without creating another faces?

enter link description here
In shown image and video
Number 1 is the problem I don't understand.
Number 2 is the final result I wanted.(mirror modifier in it.)
Number 3 is to test and compare with Number 1
Whenever I try to scale the Number 1 up to Z, it also creates unwanted side faces around it(this happens a lot and always confuses me). But Number 3 scales up properly without creating ones.(Newest objects tend to not create those)
What is the difference between Number 1 and 3? What am I doing wrong?

There are multiple vertices on top op each other. Go into edit mode, select all (press a), and then open the tools panel on the left by pressing t. There's an option called "Remove doubles". Press that and you should be fine.

I am not sure if I get you right but I answer it how I understand it.

How do you move a face without creating another faces?

You are not creating another face. You already have two faces (to be exactly you have more but this isn't the fact) on the surface of the cylinder.

What is the difference between Number 1 and 3?

In cylinder 1 there is a loopcut. In 3 there is none.

What am I doing wrong?

You are moving a face through another face. This is why it looks like
that another face was created. You have to move both, the bottom vertices and the loppcut vertices.

To Reach your goal
Model your Cylinder like you want it. Make two loopcuts delete the faces between the loopcuts and fill the howl.


text:
Geometry nodes: Split edges if faces only connected by 1 vertex
Completely stumped by this.
I want to split my geometry, so faces need to share at least two vertexes.
Here's an image of what I'm trying to achieve. Notice, the faces that are connected by just corners are split away.
Does anyone know how to achieve this?

Just a hint, no perfect solution: you can split the faces with a Separate Geometry node. This needs a selection. As selection criteria, you can use the number of neighboring faces (Face Neighbors > Face Count is greater than 0). After this, join the geometry again. This works for your example. But it fails when you have 2 or more single faces that only share 1 vertex, because they all have 0 neighbor faces and you cannot distinguish them to separate them. Bummer :-(

$\hspace{15pt}$If I understood you correctly, you want to disconnect faces that share a single vertex from each other.
$\hspace{15pt}$To do that, simply check if the edge has only one face connected before splitting:

$\hspace{15pt}$In this next image you can see that they are indeed separated, they have a random color and are being translated by a random noise per mesh island.


text:
How to cut holes into cylinder top with Boolean
I'm trying to cut holes into a cylinder top.  My first step is to create a cylinder.  Next I delete the bottom face.  Then I solidify it to give it a thickness of .05m.
At this point my object looks like:

Next I create a circle of diameter 0.2m.  I go to edit mode and fill it in.  Then I extrude it to make a long cylinder for my cutting tool.  Looks like this:

Now I move the cylinder to overlap with the face of the cylinder:

Now I select the cylinder and add the Boolean modifier.  I select the circle as my object and try to do a Difference operation.  If I make the circle invisible, I see a hole cut into the top of the cylinder as I want:

The problem occurs when I try to Apply the Boolean.  No matter if I select Fast or Exact, I get the following:

Instead of a hole cut into the face, I have a hole with an extruded cylinder below the cut.
Why?

... if this hole doesn't need to be animated, it's much easier just to  I  inset the face, and delete the middle, no oolean required.. but maybe this is just a simple case for illustration.

Hello. Please check if you have inverted normal in either meshes. You can recalculate normals in edit mode with SHIFT + N

Select the cylinder and go into edit mode. Select all and press shift + N to recalculate normals. Select inside and go back into object mode. After applying the boolean modifier you should find that deleting the circle object leaves the hole in the cylinder.

That worked!  Thanks!  Can you explain why Recalculting Normals was needed?  Any idea how I know when I need to perform that on other activities I may come across in the future?

We needed to recalculate normals because the boolean modifer uses normals to determine which direction to cut the "hole". If you turn on face orientation you can better see how the normals work on the mesh, and I would disable the solidify modifer to get a better look. The boolean modifer "cuts" a hole from the "outside" of the mesh based on the direction the normals are facing. For future uses, any time you have boolean operations that don't seem to work the way you want them to, try flipping the normals.


text:
Hollow Cylinder with Walls and Top
I would like to make a cylinder that has walls of a certain thickness.  The top of the cylinder should have a "lid" with the same thickness as the walls.  The bottom should be open.  Like an upside down cup.
I can make the cylinder using Add>Mesh>Cylinder.  Then setting Cap Fill Type to N-Gon.  This gives me a cylinder with a top and bottom.  Next I go in Edit Mode and delete the bottom face.
Using the Solidify Modifier allows me to make walls of a specified thickness.

My issue is that the top face has no thickness.  How do I achieve this?

it should have thickness, could you please share your file?

I tried to make a sample model that would demonstrate this.  You are right.  The top does have thickness.  For some reason, my current design does not have this feature.  I dont remember how I made this.  I can remake it.  Thanks anyway!


text:
Normalize Scale does not work as expected
I have the following cylinder.  I want it to have .045m for x, y and z dimensions.  Currently, as shown in the pic, all 3 scales are not at 1

After I use ALT S to normalize the scale, the dimensions change to .0454 for x & y and .0451 for z.  Why do the dimensions change?  How do I keep them static at .045m?

Dimensions and scale are connected, always one changed another.
Use on top menu Object -> Apply -> Scale. This set scale to 1, but keeps the real size (dimensions) the same.
Also can use Object -> Apply -> All transform. This set scale, rotation, and location to 1, 0, 0 respectively

Ctrl-A > Scale is easiest!

Applying the location is not always a good idea when you have moved the object away from the center... it will reset the origin back to (0, 0, 0) but the rest of the mesh will stay where it is. Can really mess up your geometry if you have e.g. a Mirror modifier on it when it uses the origin... or when the origin was at a certain position which cannot be easily recovered with something like Set Origin to Geometry for example... so almost always I would only recommend applying the scale since it causes most of the issues if not applied... and rotation only when it is needed.


text:
How can my hand connect the rotation of my hand to the special bone IK
how can i do like this, my bone doesnt move
help me with my file https://drive.google.com/file/d/16Zd5wGN8KDUNh0f15d8-blnxXYnOaxdO/view?usp=sharing

You have enabled Tool Settings > Pose Options > Affect Only > [X] Locations. When this is enabled you cannot change the rotation and scale of any bone.
Deactivate it either in the Pose Options dropdown menu, or in the N-panel, or in the Properties Editor on the right side.

The SpecialBoneIK has an IK bone constraint on it. Remove it because that's not correct. Also maybe rename the bone to LeftHandIK?
In Edit mode, you need to change the parent of this bone to the root bone Original. And make it the parent of the 5 finger bones (keep offset).
Then in Pose mode, you can add the bone constraint to the left forearm as shown in the video. Or select them both (the forearm must be selected last) then use Shift+I to add the constraint.
Last but not least, add the pole target for the hand. Make it a child of the Original bone.
Don't forget to disable Bone Properties > [_] Deform for the LeftHandIK/SpecialBoneIK and the pole target bone. It's not shown in the video but you don't want them to deform your mesh later.


text:
Convert string to directory path
class Export():
    def execute(self, context):
        conf_path=context.scene.conf_path
        dir=conf_path
        bpy.ops.export_scene.fbx({
            "object":None,
            "active_object":None,
            "selected_objects":objects},
            filepath=dir("//{}.{}".format('abc','.fbx')),
            use_selection=True,
            )

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.conf_path = bpy.props.StringProperty \
    (
      name = "Root Path",
      default = "",
      description = "Define the root path of the project",
      subtype = 'DIR_PATH'
    )

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.conf_path

Its not full file but Its just for demonstration. My issue is the "dir" object. As I run the code it says error that dir is an str object and cannnot be called. I want to know how I can convert this dir to an path so I can use it to save my export object. I tried using  dir=Path(conf_path), but it shows error WINDOWSPATH is not callable.
I just want to use this as my export directory but Like I said it shows it as a string

You have an extra period in your string format.  You either need to remove the period between the curly bracket pairs or the one in '.fbx'
dir in your code is a variable name.  It hides any dir function that you might have elsewhere in the code.
In exporters, filepath takes a string argument.

This code will do what you meant to do
    def execute(self, context):
        from pathlib import Path

        bpy.ops.export_scene.fbx({
            "object":None,
            "active_object":None,
            "selected_objects":objects},
            filepath=str(Path(context.scene.conf_path) / "abc.fbx"),
            use_selection=True,
            )

and you should move the import pathlib to the top of your file with the other imports.  I only put it here because you do need to import the library to use it.
EDIT: after clarification in the comments, I edited to use the conf_path.

Actually you misunderstood my question. I don't want to use the blend file directory I want to use a custom one, thats why I have define a bpy.types.scene.conf_name but problem is this returns a string object, If I tend to assign this value to dir as(dir=context.scene.conf_name) it will say filepath can't be a string. Basically my question is to convert the conf_name from str to a file path. thank you. There is an image of my conf_name in UI I attached

In my code, there is a string property conf_name which is being used to accept a directory from the user
Final solution is either use filepath= bpy.data.filepath("//abc.fbx"): for saving in blend file directory.
Second if case is you want to store it to custom filepath use code as below
file="name"
dir="C:\Users\naman\Desktop\"
ext="fbx"
op=bpy.ops.export_scene.fbx
op({
   "object":None,
   "active_object":None,
   "selected_objects":objects},
    filepath=(dir+"//{}.{}".format(file,ext)),
    use_selection=True,
    )


text:
Make Object Animation Data Single User Using Python
there I am trying to find a way to Unlink the animation data of two linked objects ,
Let's Describe the problem: Right now I use a script with this data to create a linked copy of an object.
import bpy

# Phase : Duplicate Linked
# Duplicating the object while being linhked
for obj in bpy.context.selected_objects:
    obj2 = obj.copy()
    obj2.data = obj.data

    #link to scene
    bpy.context.scene_collection.objects.link(obj2)

It's script just for explaination what I am doing,
My Problem is here Unlinking the object:
Phase : Removing Duplicate Linked
# Unlinking the Linked duplicate

for obj in bpy.context.selected_objects:
    obj.data = obj.data

# It doesn't unlink the object keyframes

#so obj2's keyframes/animation are still linked to original source of the object we made
#duplicate from

I know we can make the object animation single data, by F3-> Relations -> Make Single User-> Animation data
But I would like to know How to do it using Python?, I tried Accessing obj.animation_data, but it's read only.
Here is a similar post but they don't use Python to make single animation data there: Unlinking animation data from objects

Actually I found it,
Just go into the animation_data and actions and copy it
# Unlinking the Linked duplicate
for obj in bpy.context.selected_objects:
    obj.data = obj.data
    if obj.animation_data:
       obj.animation_data.action = obj.animation_data.action.copy()


text:
How to run script in a new blender subprocess
In my code I am trying to open a new blender subprocess with this code
I am trying to do some action like this
how to run a give code = ''' import bpy''' like in code below, in that new blender subprocess
how to run like a script in that new sub process that opens
Example Script : 'C:/Users/Desktop/my_script.py'
import bpy
import subprocess

blenpath = 'C:/Program Files/Blender Foundation/Blender 2.93/blender.exe'

code = '''
import bpy
for obj in bpy.data.objects:
    obj.name = 'test_name'
'''

# how to run the code above in that new blender subprocess
# how to run like a script in that new sub process that opens
# Example Script : 'C:/Users/Desktop/my_script.py'

cmd = [blenpath]
subprocess.Popen(cmd)

See all the python options here https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html#python-options
import bpy
import subprocess

temp_blend_path = 'C:/Users/naman/Desktop/test.blend'

filepath = 'C:/Users/Desktop/my_script.py'

process = subprocess.Popen([bpy.app.binary_path, "--factory-startup", "-b", temp_blend_path, "--python", filepath], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, encoding='utf-8')
process.wait()

Can I know how, to open a subprocess, instead of an existing file? like another instance of blender and run the code in it.

Also u wrote a code in the expression, What if I want to get a code from a script I written in a directory,  'C:/Users/Desktop/my_script.py' , like this

learn more https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html#python-options

argument order https://docs.blender.org/manual/en/latest/advanced/command_line/arguments.html#argument-order

I understand these shows arguments for command line, can u do it so I can easily implement into the subprocess.Popen instead, how to run a script in the opened subprocess,

remove the "--python-expr", expression and use "--python", <filepath>


text:
How to select Edges marked as Seams in blender using Python script (not Shift+G)?
I just want to write a python script to select edges which are marked seams using a python code instead of Shift+G, that is my request, I have to merge this code with a bigger one so Shift+G won't work for me.

Think this should do the trick.
import bpy
import bmesh

obj = bpy.context.active_object
bm = bmesh.from_edit_mesh(obj.data)

for e in bm.edges[:]:
    if e.seam:
        e.select_set(True)

bmesh.update_edit_mesh(obj.data)

There's no need to use [:] there to make a list copy, as you're not modifying the collection (as in the order or length doesn't change).

Thank you, Really thats all I wanted, appreciate that.

@MarkusvonBroady good to know, Yeah I mainly learned everything I know about bmesh from this demo in the bmesh docs and they use that semantic basically everytime they access the geo like that. ¯_(ツ)_/¯

@Jakemoyo it might be a good idea to get into the habit of using that to avoid nasty problems when you end up in the state of sin, though I think it's nice to know why something is being done, and I'd also argue usually defensive programming is bad because it's better to fail and learn from that :). In your example you need to sum edges and verts, and BM sequences don't support addition operator, so instead list copies are made and added together.

This will work in Object Mode:
import bpy
from bpy import context as C

for e in C.object.data.edges:
    e.select = e.use_seam

Or a faster way if you have a lot of geometry:
import bpy, numpy as np
from bpy import context as C

me = C.object.data

array = np.zeros(len(me.polygons), dtype=bool)
me.polygons.foreach_set('select', array)
array = np.zeros(len(me.vertices), dtype=bool)
me.vertices.foreach_set('select', array)

array = np.zeros(len(me.edges), dtype=bool)
me.edges.foreach_get('use_seam', array)
me.edges.foreach_set('select', array)

Your code is really great and I am glad to see a new approach, But I have to give the answer of Jakemoyo as it's more closer to my need. Thank you tho,

@NamanDeep Sure, if you're in Edit Mode, Jakemoyo's answer is the answer.

import bpy

obj = bpy.context.active_object # make obj active object in your scene

if obj.type == 'MESH': # check if active object is a mesh (logical)

    # in order to select edges, you need to make sure that
    # previously you deselected everything in the Edit Mode
    # and set the select_mode to 'EDGE'
    bpy.ops.object.mode_set(mode = 'EDIT')
    bpy.ops.mesh.select_mode(type = 'EDGE')
    bpy.ops.mesh.select_all(action = 'DESELECT')

    # we need to return back to the OBJECT mode,
    # otherwise, the result won't be seen,
    # see https://blender.stackexchange.com/questions/43127 for info
    bpy.ops.object.mode_set(mode = 'OBJECT')

    # now we check all the edges
    for edge in obj.data.edges:
        if edge.use_seam: # if the edge uses seam
            edge.select = True # select it

    # as we did all selection in the OBJECT mode,
    # now we set to EDIT to see results
    bpy.ops.object.mode_set(mode = 'EDIT')

else:
    print("Object is not a mesh") # print if active object is not a mesh


text:
How to Deselect 1 vertices from each end of selected edge strip of vertices?
So, lets understand what I am trying to say here
In the picture I made simple mesh and selected verts so, in the first square piece all boundary edges are selected hence its a close loop, and every other selected edge is open loop of verts. So I want to develop a code that deselects the each vertice that is on end of open loop and the closed edge/vert loop should be unchanged. Result desired:-

I believe this should work. I'll leave it to you to figure out how to make it into a menu item or an actual addon. But if you run this script in your text editor you can search for the operator and it should work.
import bpy
import bmesh

class DeselectOuterVerts(bpy.types.Operator):
    """Deselect the outermost vertices on a non-cyclic edge loop selection."""
    bl_idname = "mesh.deselect_outer_verts"
    bl_label = "Deselect Outer Verts"
    bl_options = {'REGISTER', 'UNDO'}

    # method to identify verts that are on the outside of
    # the edgeloop selection
    @staticmethod
    def is_inner_vert(vert, sel_edges):
        num = 0
        for e in vert.link_edges:
            if e in sel_edges:
                num += 1
        # if the number of edges connected to the vertex
        # that is also in the current edge selection is < 2
        # then we know that this vertex is on the outside
        return num == 2

    @staticmethod
    def both_verts_in_selection(edge, vert_selection):
        v1, v2 = edge.verts[:]
        return bool((v1 in vert_selection) * (v2 in vert_selection))

    def execute(self, context):
        obj = context.active_object
        bm = bmesh.from_edit_mesh(obj.data)
        sel_edges = [e for e in bm.edges[:] if e.select]
        sel_verts = [v for v in bm.verts[:] if v.select]

        num_verts = len(set(sel_verts))
        num_edges = len(sel_edges)

        # if only two verts are selected then do nothing
        if num_verts == 2:
            return {"FINISHED"}

        if num_verts > num_edges:
            for v in sel_verts:
                if not self.is_inner_vert(v, sel_edges):
                    v.select_set(False)
                    bm.select_history.discard(v)

            # it seems like just setting one of the two vertices of an edge to
            # unselected is not enough to also set the edge to be deselected

            new_sel_verts = [v for v in bm.verts[:] if v.select]

            # this is probably a stupid way to solve this problem but eff it.
            # it works.

            # loops back through the edges, find if both verts are selected,
            # if not then set that edge to be deselected.

            for e in sel_edges:
                if not self.both_verts_in_selection(e, new_sel_verts):
                    e.select_set(False)
                    bm.select_history.discard(e)

            # this action deselects the edge entirely, which means it
            # deselects one too many verts, so we need to go back and
            # set the selected vertices to at least the original selection.

            for v in new_sel_verts:
                v.select_set(True)

            # now this operator has the benefit of working properly
            # on both edge and vertex selections

        bmesh.update_edit_mesh(obj.data)

        return {'FINISHED'}

def register():
    bpy.utils.register_class(DeselectOuterVerts)

def unregister():
    bpy.utils.unregister_class(DeselectOuterVerts)

if __name__ == "__main__":
    register()

```

Yeah It's great and working I implement a button to test and it worked but, Lets say I pressed the button once and it deselects the outer verts. But if I again press the button it does nothing, Do you know why? Like technically If I press button again and again it should go on and deselect end verts from the updated mesh too, but it doesn't. Also it also deselects the loop which have only 2 verts,

I edited the code, it should work as expected now.


text:
Cannot set dimensions
I can't set dimensions, looked really easy according to questions answered more than one year ago but I swear I am doing my best and have come up stumped. batFINGER gave me some pointers and I tried them but honestly I cannot see where I am going wrong.
On my menu there is nothing about setting dimensions (see drop down and also workspace on the right). Just scaling.

In your previous question one of the comments points to another question: https://blender.stackexchange.com/questions/135215/where-did-object-dimensions-go-in-2-8 which points out to press N key. As well as to use the Modelling tab.

I was just going to answer my own question: I just spotted that! Yaaaaay. Cheers everyone!

As @Markus von Broady pointed out, editing an objects dimensions is available in the N-Panel (hit n key) but not in edit mode, you need to be in object mode.

Changing any of the dimensions will also change the scale, so be sure to apply scale if you're doing any deformations, physics, etc.
There are other ways to get accurate dimensions while modeling in edit mode but that's for another question :)


text:
Wierd Black things in solid view Blender 2.91.2
I just opened the project file from blender cloud (Rain v2) and this happened.
I tried to fix it for an hour, but I found nothing similar. I have an RX 580 and a Ryzen 5 1400 with the recommended drivers.

I suspect that this could be yet another issue with AMD cards. See this related question: https://blender.stackexchange.com/questions/210864/alpha-transparency-glitching-viewport-display-amd


text:
Multiple uvmaps for single object for texturing blender 2.9
I am trying to texture my object (a single object) with multiple different textures.
Suppose my object has 3 different textures, i plan to map faces which have a particular type of texture to a single uvmap (so eventually i should have 3 uvmaps with different sets of vertices and faces on different uvmaps).
I know how to assign multiple uvmaps to an object. however the issue is when i switch between maps, the faces i selected for the previous uvmap are lost. and if i hit the uv sync key (in uv editor mode), all the faces of my object show up in uvmap!
I wanted to know how to ensure the faces i selected and unwrapped for a particular uvmap remain on that uvmap and are not lost (even if i switch maps)? exporting the uvmap (as png etc.) is not an option as i may need to reorient the faces later for texturing.
Perhaps my workflow is the issue - if i want to assign different textures to different faces - is it better to split the mesh into seperate smaller objects and then assign textures to them?
or is there some other better work flow for this? the issue with splitting the object into smaller objects is that if i later decide to apply subsurf mod to my objects (for higher poly count), the smaller object will deform seperately and so the objects wont line up!!!
Is it possible to render the different uvmaps for different faces (of the same object) all at the same time? in blender 2.9, in the uvmaps tab, i only able to enable one uvmap at a time for rendering!
What is the better approach/workflow here?

The better workflow is to use a single object, a single UV map, and multiple materials, where each material references a different texture image.  I think you're misunderstanding how UV and materials and textures work.  All faces are UV mapped in all UV maps; changing UV maps doesn't lose any mapping in other UV maps; but you need to specify (probably in nodes) which UV map you want to use to reference each texture image, individually.

"where each material references a different texture image"


text:
Removing light source on a reflective surface
I want to have a reflective floor, but have it not reflect rays coming from a light. Using Blender 2.91, Cycles. I want the light to create a glossy rim light on the object in the scene, so I don't the usual solution of Light > Visibility > Ray Visibility > Glossy off cannot be applied here.
.

Instead of Mesh light object use Point or Sun that generate much smaller light source ...

... to hide from render entirely change Size under Light  Properties to zero.


text:
Camera slows down zooming into an object while in viewport
I have been encountering an issue where the camera zoom slows down then completely stops moving before I reach an object which I'm trying to zoom into.
I'm not too sure how to fix the issue and I've searched the web but still struggling to fix the problem.
Thanks in advanced

The camera has a limited amount it can "zoom", and it doesn't move when you zoom it. There are a number of ways you can navigate despite this. The easiest is probably to "snap" the camera to the selected object by pressing the decimal (.) button on your Numpad. If you need even finer control, you can enter walk mode by pressing Shift + ` (same key as ~). You can then navigate with the WASD keys. Press Esc to return to normal navigation.


text:
Light leaks in shadows

This happens all of the time, even with other modeling programs (UModeller and Probuilder). I suspect it is a Unity problem, and I have asked there, as well. I have checked all seams, especially around inset windows, but they look to be tight. Any suggestions will be gratefully received.  I am a total rookie at modelling.

Some meshes need some thickness in order to block light properly, however, if you are using EEVEE, you can try going into the light properties and under Shadows, enable "Contact Shadows".

Thank you, I will try that.


text:
a way to randomly cleave and break an object

Just looking for some hints on how to create the effect as shown in the attached image.


text:
I need help for the 2D key

How do we go to this vision in blender the 2D one instead of 3D.I only need the key(s)


text:
How to add a background behind an transparent image?
So I have an image of the earth and everything else is transparent. I created it in blender and use a composite setup, to make the atmo slighty blurry(so it doesn't seem like it is has a sharp edge). The issue is that it removes the transparent background and makes it entirely black. When I use an alpha over node at the end to add a space background, then it doesn't work. It only works, when I remove the first alpha over node, that I use for the blurry atmo.
This is my current setup.This is the blender file
I hope you can help me fix this. Or maybe a workaround for my "easy" atmospheric blur.

I solved! I inverted the alpha channel to use it as a mask for the background. The black area is the earth, where it darkens completly. With an add and multiply node, I finally managed to add the background!


text:
This script can't run twice, why?
Blender ver 2.83 LTS.
Whenever I tried to run this script twice, it came out an error:
ERROR (bke.lib_id): C:\b\buildbot-worker-windows\windows_lts_283\blender.git\source\blender\blenkernel\intern\lib_id.c:342 id_us_min: ID user decrement error: OBNew_STL (from '[Main]'): 0 <= 0
I'm trying to delete the old STL object without selection or restarting the blender file. This error is driving me crazy but I have no idea handle it.
import bpy

new_stl_is_here = []

def new_stl():
    global new_stl_is_here
    #  get old object list
    old_obj_lst = []
    for j in bpy.data.objects:
        old_obj_lst.append(j)
    #  import a STL file
    bpy.ops.import_mesh.stl(filepath="C:\\xxx.stl")
    #  get new object list
    new_obj_lst = []
    for jj in bpy.data.objects:
        new_obj_lst.append(jj)
    #  new STL is in this list
    new_stl_is_here = list(set(new_obj_lst)-set(old_obj_lst))

def delete_old_stl():
    for jjj in bpy.data.objects:
        if jjj.name == "New_STL":
            bpy.data.objects["New_STL"].user_clear()
            bpy.data.orphans_purge()

def rename_stl():
    new_stl_is_here[0].name = "New_STL"
    new_stl_is_here[0].data.name = "New_STL_mesh"

new_stl()
delete_old_stl()
rename_stl()

I think you are trying to clear the users of an object that has no user. before the user_clear line try if jjj.users > 0. Also I would replace the name of the jjj variable by obj, it's more clear.

Ditch global lists and use selection
After calling the import operator any newly imported objects are selected and make up the context.selected_objects list.
I don't have any multi-object stl files to test theory against, but will go thru the motions with a single object file.
With no current selection.
>>> C.selected_objects
[]

Import stl
>>> bpy.ops.import_mesh.stl(filepath="/home/batfinger/Desktop/untitled.stl")
Import finished in 0.0156 sec.
{'FINISHED'}

Newly imported object(s) (Have no examples of multi object stls)
>>> C.selected_objects
[bpy.data.objects['Untitled']]

Remove that import
>>> old_import = C.selected_objects
>>> while old_import:
...     D.objects.remove(old_import.pop())
...
>>> C.selected_objects
[]

Import again
>>> bpy.ops.import_mesh.stl(filepath="/home/batfinger/Desktop/untitled.stl")
Import finished in 0.0140 sec.
{'FINISHED'}

>>> C.selected_objects
[bpy.data.objects['Untitled']]

Rename this time
>>> #and to rename
>>> for o in C.selected_objects:
...     o.name = "Foo"
...
>>> C.selected_objects
[bpy.data.objects['Foo']]

What's the file looking like
>>> D.objects[:]
[bpy.data.objects['Camera'], bpy.data.objects['Foo'], bpy.data.objects['Lamp']]

Notes.
Basically think the remove method in question code is "icky", as also is keeping some global list with object references ... just asking for a crash.
Notice the way the objects were removed in python console code above. They are unlinked (de-usered) by default.
To use a list like so recommend only using names, or just not doing it that way.
Putting this into a script
Have made a version of the script using a custom property tag to "mark" any imported STL. And to keep the new, remove, rename order also looked at the name.. one thinks remove, new, rename makes more sense.. anyhow
import bpy

tag = 'IMPORTED_STL_OBJECT'

def new_stl(filepath):
    #  import a STL file
    bpy.ops.import_mesh.stl(filepath=filepath)
    #  get new object list
    # ops use context silly not to use it.
    # could do set before / after here too.
    for o in bpy.context.selected_objects:
        o[tag] = 1
        o.data[tag] = 1

def delete_old_stl(name="NewSTL"):
    stls = [o for o in bpy.data.objects
            if (name and o.name.startswith(name))
            and tag in o.keys()]
    while stls:
        bpy.data.objects.remove(stls.pop())
    stl_meshes = [m for m in bpy.data.meshes
            if (name and m.name.startswith(name))
            and tag in m.keys()]
    while stl_meshes:
        bpy.data.meshes.remove(stl_meshes.pop())

def rename_stl(name="NewSTL"):
        stls = [o for o in bpy.data.objects
            if tag in o.keys()]
        for o in stls:
            o.name = name
            o.data.name = f"{name}_Mesh"

new_stl("/home/batfinger/Desktop/untitled.stl")
delete_old_stl()
rename_stl()

Thanks a lot, after tried your method things goes very well in script. Anyway... when I tried to do the same in addon, an error occurred: 'Context' object has no attribute 'selected_objects'. Maybe objects wouldn't be auto selected after import in addon?

Not the case if done correctly.  Maybe related  Suggest post how you are attempting to run this in an addon.  You cannot simply import the code as above as an addon.

See https://blender.stackexchange.com/questions/212545/import-multiple-stl-files-and-modify-them-in-one-go re importing STL files in an addon.


text:
Why is the hair is only on one side?
I've just started learning blender and I don't know how to change the particle position. I wanna move the hair to the other side. How do I do it?

Hello :). By default, hair particles direction depends on face normals. You could simply go Mesh > Normals > Flip.

or just rotate the plane 180 on x

This delves into the concept of normals, and mathematical planes. My short answer is to extrude the plane a bit, then recalculate all the normals in the Mesh menu (make sure to select everything first). This will turn the plane from a two dimensional area into a three-dimensional object, and will allow it to emit hair from both sides.
If you don’t want the plane to be solid at all, I recommend changing how the hair is emitted to not use normals.

To apply hair particle to all sides, use normal hair particle setting then extrude plane a bit. Or you dan use solidify modified then go to hair particles setting > source> check "Use Modifier stack"


text:
Blender 2.91.2 : Face texture looking weird while using shade smooth
Good day,
I have trouble with texturing my first model. The textures looks "edgy" while using shade smooth.

I have tried recomputing normals, merging normals, redoing the mesh twice, but I always come back to a similar looking result.

could you share your file so we can take a closer look?  You can use this link: https://blend-exchange.com/             Alternatively, if your file is too big, you can upload it as a google drive link.

Is this a knife with faces on either side?

Hello,
Yes, it's a blade.  Here is the model:


text:
Armatures/Rig Deforms Mesh With Extreme Angles
I'm learning rigging and in the process of setting up a free spider man mesh (https://www.cgtrader.com/free-3d-models/character/man/base-mesh-spider-man) I noticed that in pose mode when doing extreme angles on the bones that the mesh gets kinda...wonky:

I know how to setup limits on the rotation of bones but I was wondering if I could combine that with a mesh solution? I haven't learned weight painting or vertex groups yet but should I look into that in order to stop this mesh deformation?

The first thing to ask when seeing bad deformations is, is this a reasonable position for my bones?  In your case, it is not.  Your arm positions would require clavicle involvement-- ie, you can't bend your arms that way, not without also bending your shoulders.  For doing the splits, your leg bones are placed slightly low, and you could benefit from having some helper bones at the hips to hold the pelvis weights, although in my experience, doing the splits is sort of advanced, and making it look good requires a more complicated armature than you have.

in this situations combining shape keys and drivers could help, for example changing the mesh based on leg bones

I figured my rig was too simple for this "realistic" of a mesh so I'll look into adding more armatures for these types of meshes going forward and using more bones like the clavicle and adding more for connecting the pelvis to the femur (yes I just watched this to jog my memory lol: https://youtu.be/f8zQel-jAUY). As for shape keys and drivers, I'll look into those later. Fow now I just want to get better at rigging before I start learning other tools.


text:
How to Focus 3D View to Object Origin?
I just did a fresh install of the newest Blender since I hadn't updated in quite a while but forgot about my essential custom keybind. I setup "Shift+J" as a focus on the origin of whatever object was selected. This was easier to me than moving the camera around manually but now I can't remember how I did it. I know it's buried somewhere in Preferences.

I figured it out! It was not in Preferences. Rather it was in "View", specifically the one in the top left of the 3D Viewport. Then I went to "Align View" and right clicked on "View Lock to Active" to input my shortcut.


text:
Is it important to unregister all the Scene Variables in a python code?
Just want to ask if I would have need to unregister all scene variables in my python code? Does it affect optimization or memory if I don't. Just wanted to know,

No, I think blender does it automatically.


text:
Delete non-intersecting parts of two solids
Is it possible to extrude an imported curve, duplicate it, rotate the duplicate 90 degrees on center, and then retain only the intersection of the two extrusions?

Just for completeness .. which axis of rotation? In the plane of the curve, or perpendicular to it?

I'm a hobbies trying to move from 123D Design (no longer supported). I'm wanting to take the intersection of symmetrical letter forms extruded, duplicated, and rotated on their axis of symmetry.


text:
2d mandelbrot set generation with script
I would like to find a script to create a 2d Mandelbrot set in the 3d workspace. is there any way to do this or is it impossible? Any help appreciated.

https://blender.stackexchange.com/questions/1551/fractals-in-blender

maybe a little bit late, but I have just done what I think you want.
https://www.youtube.com/watch?v=LnPxRci2HY0 Regards
Javier


text:
Complicated Knife Edge
I am trying to make an unusually shaped knife, and I cannot for the life of me figure out how to model the edge and make it sharp. anyone who could help with this is appreciated. Here is the knife in edit mode.

I am attempting to model a character from my favorite show, and this is a blade on the wing.
thank you for your help, those who answer! If I need to include other information, please feel free to ask for it.

Maybe select the edge loops and scale on Z? Or show a reference image of your object and share your file?

@moonboots what do you mean by edge loops? i am a complete beginner to blender and do not know probably 98% of the functions of the program. do you mean just to select the edges and z-scale them?

Yes select the edges where you want the blade to be sharp and scale on Z, but if you show a reference image we could propose a solution

@moonboots no, that did it. thank you for your help!

Select these 2 edges (AltRMB):

Scale on Z (SZ):

If you pull the middle edge it will be even sharper:


text:
Merge two edges on the same axis
I have done lots of searching, but it seems I can't get my wording correctly. I have multiple edges like

Where there are two edges on the same line (that share the center vertex), but I cant seem to find a way to merge them into one edge without deleting the center vertex and remaking the faces manually

You can't find a way? There are multiple ways to do this. Apart from dissolving the vertex which you answered yourself, you could also select a second neighbouring vertex and then press M > Merge > At Last or At First depending on the order in which you selected them. Or select the center vertex, then G G to edge slide onto another vertex and Merge > By Distance. Or enable the Auto Merge option so that after sliding onto another vertex they get merged automatically. Or snap one vertex to another with Auto Merge or merging by distance afterwards.

https://blender.stackexchange.com/questions/316889/how-can-i-do-some-sort-of-limited-dissolve-of-useless-vertices-at-the-edges

@HarryMcKenzie Surely helpful for finding those vertices, but the question here is how to get rid of them. Dissolve Vertices is already given in the answer by the OP himself, Limited Dissolve (which you mention in your question) I suggested in the comment below the answer, but is allegedly not working for some unknown reason...

While I was making this, I remembered about dissolve vertices. By clicking on the middle vertex, and pressing X then choosing Dissolve Vertices, it seems to delete the center vertex and merge the edges connected to it.

If you have a lot like these, you could also select the whole mesh and then X > Limited Dissolve to get rid of all vertices and edges which are below a certain threshold angle. By default this is 5° which might be too high for meshes with low angles which you might want to keep, so you have to adjust the threshold when using this (I usually set it to 0.1° to make sure only straight/flat parts get dissolved).

Hmm, It seems it only works on faces, though. I had 20 of these, and doing it less manually was still better

No, it does not only work on faces. But without your mesh or an example it is hard to determine where this impression comes from. Since you got what you need it doesn't matter anymore I guess.

you can select the vertex and press Shift+G then try some of those options to automatically select all similar vertices as the one you selected. I think it was Shift+G > Amount of Connecting Edges. Then X > Dissolve Vertices. I had the same problem: https://blender.stackexchange.com/questions/316889/how-can-i-do-some-sort-of-limited-dissolve-of-useless-vertices-at-the-edges


text:
Scale instance on points?
I have geo node with curve to points and then instance on points. I have managed to get my objects rotated along the curve. I would like to scale the instances to have them smaller at the ends of the curve, but I can't figure out how to do that.
I have tried messing around with the float curve node that I saw in similar questions asked, but I couldn't get it to work. What am I doing wrong/missing?
Here is a link to my blend file: https://drive.google.com/file/d/15TcJV1zJZveuASgnzk5_MP_B2QUUBpfU/view?usp=sharing

That can be this setting:

Get the index and map it from 0 to the domain size targeting 0 to 1.
Then input it in the float curve you already made and plug the result to the scale of the instance.

Your solution works perfectly. Thank you so much! It would have taken me ages to figure that out on my own.


text:
How to turn a trim sheet (plane) into an image that I can use to UV map the details (i.e., the geometry) onto faces of another object?
I have taken a plane and modeled it into a pattern that I would like to be able to apply as a little detail, i.e., trim, to other objects. I have not applied any textures or materials to it; I simply want to be able to use UV mapping to copy the geometry from this plane onto faces of other objects and then bake it on. How can I make this plane appear in the UV editor?
I've seen a bunch of tutorials that involve exporting to Substance Painter, but I do not have it and I am not willing to spend any money to acquire it.

Copy an image of the geometry, or the geometry itself?   https://blender.stackexchange.com/a/257987/35559 ?

Okay, yes, this is exactly what I was looking for.

If so, can we mark this question as a duplicate, then?

This does look like a duplicate. If not, you can edit, explaining the difference, and we can re-open.


text:
How do you mark spots when you work with the measure tool?

Hello,
So I measured this spot with the measure tool and thats exactly where I wanna set a loop cut but as soon as I choose the loopcut tool the measured line dissaperas.. Is there a way to mark those spots?

Although this is not a setting or anything, this is the way I "mark" the spot of my measure so I can loopcut it:

In solid preview mode, turn on X-ray and align the end of your measure to a reference line (in my case, line X.)

Next, go to loopcut mode and loopcut aligned with your reference line

The finale: A loopcut right on the end of your measure.