Bone local coordinate adjustment I have a small rig setup on which I am working. Later in pose mode I want the root bone to affect several (IK) bones. To have a better control I want to do it with contraints. So, lets say when I move the root bone in pose mode I want that another bones is moved also like the root bone is the parent. The problem is, that the local axis of the root bone and the other bone are different and when I setup the Copy Location Constraint (with local space <-> local space) and move the root one the affect is wrong, cause the target bone is moved on the wrong axis. I tried to correct the local axis of the target to make it the same like the root bone. For this, I used the recalculate roll tools in the armature menu, but I can only correct one axis. Any advice, how I can solve this problem?

To align bones in Edit Mode select the bone you want to align and then the bone you want to copy the alignment from. Then press Ctrl Alt A (Align Bones).

As a side note: If you need them to have different rotations, parent them on additional bones and use the copy location constraint on the parents instead. That way you can rotate the childs freely without worrying about their translation.

An easier solution might be to use Pose Space to Pose Space for the copy location constraint and tick on Offset in the constraints panel.


Why are circles always created upside down? Why is it that when you create a circle, then do a curve deform across that circle, the object always jumps to the opposite side?

Here is what the final result should look like:

Here is what happens when trying to create that object.

https://www.youtube.com/watch?v=TXvMSw_9VRc&feature=youtu.be

How can I simplify deforming a shape to a curve without having to rotate multiple times?

Blender File

You could also bring the shape into the position (illustarted by the first image) by moving it along the x-axis.
G,X  followed by mouse movement.


Smoke Domain fields are not editable A number of fields of the Smoke Domain in my blend file are "suddenly" not editable anymore.

Some fields are editable, others are not. How can this happen ? And how to solve this ?

The smoke domain settings become uneditable if smoke simulation was baked.
Note that the file must be saved in order the baking to work:

  Baking can only been done once your .blend is saved. If your .blend has not been saved, the Smoke Cache panel will be disabled.

manual page

Press Free Bake button in the Cache rollout in domain settings (it's called like that only if simulation is baked). This will remove the calculated data with the next modification or frame change and it should be baked once more. However it'll be possible to continue editing any settings of smoke sim.


Change in character's location with key frame messes up cloth simulation I'm using cloth simulation and my problem is when I change the character location with key frame to a far location the cloth will mess up is there a way to pause the cloth and resume it to not make this happen
I can't seem to find a solution

I think I found a solution changing the cloth simulation mass to 0 before Changing location than after 2 frames change it back to original cloth mass


Blender 3D objects are shaking in viewport when it's too far from center If you place any object in the viewport really far away from the center and start to rotate, it starts shaking/giggling...

Does anyone know how to solve this problem by not moving objects to center?

And here is a test blend scene:

This kind of problem usually occurs when you need to import .dxf files that contain exact coordinates of lines and not allowed to move!

Typical 3d systems use internally floating point arithmetics in single precision (ref: https://en.wikipedia.org/wiki/Floating-point_arithmetic). When floats get larger they (by design) get less precise. Hence you see these staggerings. Also other systems have these limitations.

I worked on a custom pipeline where everything was stored on disk relative to a specific point in the world. Per scene we had an offset that was applied during loading so that the center of attention was always near the origin. We did all this to overcome the limitations of floating point.

Systems that need to be more precise (like CAD systems) typically use double precision or do not use floating point arithmetics. But that will give you a performance penalty.


Where did my material / texture buttons go? Something happened when editing a Blender scene that caused me to lose the whole texture properties window and most of the materials window as well. They all appear as normal when starting a new file, but for this file they seem to be permanently gone.

This is what the window looks like now:

When using the Cycles render engine, the textures tab will only show if you have a texture added to your material.

If there's no texture properties, then you can enable it by assigning a texture of any kind to the color input of your shader.

Click the dot for the Color Input of your shader
Select a texture of any kind
The texture properties will now be shown


My render animation has no color? Ill been using blender since a month ago thanks to tutorials and the blender guide and now that I render my animation has no color, My mesh already has texture but the texture doesnt appear in my .avi extension/output its only grey or black and white, does anyone know?
-Edward S.

There aren't any materials assigned to the objects; thus no textures will be rendered. You can preview textures in 3D Viewport because in Blender Internal it isn't required to have material in order to preview texture on the model; it is enough to select faces in Edit mode and open desired image in UV/Image Editor (no need even to unwrap it and assign texture to UV map):

You still have possibility to render these textures by enabling Face Textures in properties, however you will need to create material for that:

Do keep in mind that this is not a good practice and should be avoided; create textures, assigned to the material and link them to images instead.


How to assign a new material to an object in the scene from Python? How can I assign a new material to an object in the scene via Python?

Here you go, code with some safety checks:

import bpy
ob = bpy.context.active_object

# Get material
mat = bpy.data.materials.get("Material")
if mat is None:
    # create material
    mat = bpy.data.materials.new(name="Material")

# Assign it to object
if ob.data.materials:
    # assign to 1st material slot
    ob.data.materials[0] = mat
else:
    # no slots
    ob.data.materials.append(mat)


How to subframe particle emitter parented to a Bone? I parented a particle emitter to a character's armature (a bone in the armature). The idea is to create a continuous trail of particles that the characters leaves behind as he flies by.
If I parent the emitter to a bone in the armature, the trail becomes 'patchy' and 'stepped', like the emmitter is not considering subframes, only whole frames.
I tested animating the emitter directly, in the same speed as the character, and the trail is continuous and not stepped as I need it to be. But I need to parent it, because I want it to be precise and follow exactly the same path as the character.
Why does parenting to the armature make the emission not continuous? Is there a way to fix this?
Edit: added a screenshot below: The trail becomes a 'dotted' line as the character gains speed, instead of being a continuous trail.

The only one way I found is to use Output Properties > Dimensions > Time Remapping

Top row are particles emitted from animated Plane.
Bottom row are particles emitted from Plane parented to Bone.

Notes:

Subframes doesn't help because issue is related to a Bone that jumps to next frame (same as anim Plane, but there (for some reason) it works as expected.
For that I tried to add Step Modifier, that let you add steps even in between two frames (or negative), but even steps were visible on Timeline, zero influence for particles as well.

Constraint didn't work (parented Plane to Armature as well)

I didnt post this answer almost week ago, just because when I tried it I probably didn't refresh cache to see influence ... the only one way to refresh cache that works for me is to change Number of particles every time I do same change in setup.

Edit
According to this closed bug report from 2014 it is marked by Sergey as known limitation planned to be fixed with new particle system. Lukas created already fix at the same year, but wasn't published and was moved on TO DO list
But check blend file attached on bug report link. You have two other options

Bake Action
Constraint > Follow Path


Edit IPO curve does not work I want to edit the IPO curve on blender. In the Graph editor,I select Ylocation curve then I hit T and I choose linear but the curve does not change to linear (image 1 vs image 2). I have tried other interpolation mode, but the result is the same.

You have to select the keyframes you want to affect first and then change the interpolation type.


Making changes to objects in scene before exporting using custom exporter addon I'm writing a custom exporter that ultimately exports a FBX file and a set of render images.

Before that happens, the exporter traverses through the scene and modifies specific objects. For example, it applies rotations on the camera, moves meshes to world origin, modifies meshes. After that, it exports the FBX and calls to render stills.

After exporting and rendering, it undoes all the changes in the scene.

The problem is duplicating and effectively undoing all the changes has been difficult to maintain. The second problem is that the names of the exported objects must be the same as the objects in the scene; not "Cube.001".

I have so far:

with DuplicateScene(root_obj) as dup_root_obj:
    modify_cameras(dup_root_obj)
    modify_meshes(dup_root_obj)
    export_model(dup_root_obj)
    export_stills(dup_root_obj)

The problem, again, is that the exported FBX doesn't contain the original name as in the scene.

I thought a little about what @batFINGER mentioned in the comments, and it got me thinking:

class DuplicateScene2():
    _file_stack = []

    def __init__(self):
        if not bpy.data.is_saved:
            raise ValueError("Save .blend file before exporting")
        # Push filepath onto stack
        if len(DuplicateScene2._file_stack) == 0:
            DuplicateScene2._file_stack.append(bpy.data.filepath)
            bpy.ops.wm.save_mainfile(filepath = bpy.data.filepath,
                                     check_existing = False)
        else:
            filepath, fileext = os.path.splitext(bpy.data.filepath)
            DuplicateScene2._file_stack.append("%s.copy.%02i.blend" % (filepath, DuplicateScene2._unique_id))
            DuplicateScene2._unique_id += 1
            # Save file
            filepath = DuplicateScene2._file_stack[-1]
            bpy.ops.wm.save_as_mainfile(filepath = filepath,
                                        check_existing = False,
                                        copy = True)

    def __enter__(self):
        # Return new context override
        context = bpy.context
        window = context.window_manager.windows[0]
        screen = window.screen
        scene = context.scene
        area_view3d = [area for area in screen.areas if area.type == 'VIEW_3D'][0]
        space_view3d = [space for space in area_view3d.spaces if space.type == 'VIEW_3D'][0]
        return {'window': window,
                'screen': screen,
                'area': area_view3d,
                'space': space_view3d,
                'context': context,
                'scene': scene}

    def __exit__(self, type, value, traceback):
        filepath = DuplicateScene2._file_stack.pop()
        bpy.ops.wm.open_mainfile(filepath = filepath,
                                 load_ui = True,
                                 use_scripts = False)
        if len(DuplicateScene2._file_stack) > 0:
            os.remove(filepath)

Using it like so:

try:
    with DuplicateScene2 as override_context:
        ...
except ValueError as e:
    self.report({'ERROR'}, "%s" % (e))
    return {'CANCELLED'}

With this, checking if the file has been saved or not will warn the user about needing to save before exporting. Any exceptions thrown will still allow the file to be reverted.

If there are "cleaner" methods, or suggestions, please do post!

Edit: This doesn't work nested, which is what I realized that I also need.

Edit: Added supported with nesting.


How to add a displacement modifier and source image with blender python I want to add a displacement modifier to the active object and set the source image in python when you press a button. How can I do this?

The code is

heightTex = bpy.data.textures.new('Texture name', type = 'IMAGE')
heightTex.image = bpy.data.images['Myimage.jpg']
dispMod = ob.modifiers.new("Displace", type='DISPLACE')
dispMod.texture = heightTex


How to get out of 2D view I created some UV spheres and my work progressed nicely. At some point I inadvertently must have pressed some button and I see only flat black circles instead of spheres. Also the sidebar shows that the Dimension setting for the z-Axis is 0. Any other value I enter here is ignored.

I have chosen top orthographic view on purpose. Changing to user perspective does not solve the problem. Tilted user perspective looks like this

You have entered orthographic mode. Press Numpad 5 to toggle it on and off, or simply hold down the Scroll Wheel and move the mouse you will be out of it. If you want to use orthographic modes in the future:
Numpad 1 = front orthographic
Numpad 3 = side orthographic
Numpad 7 = top orthographic
Numpad 5 = flip (ex: top flips to bottom)


Shader that is only visible when the face normal points up I'd like to create a shader that is completely transparent except for top faces that are parallel to the floor (face normals being parallel to the global Z axis). Used on a cube, only the top face would be visible.  I don't intend to rotate the object, so local and global Z are identical. But the shader should not care for the camera position.

After Brenticus' great answer I came up with this solution: it shows only faces that are reasonably parallel to the floor and face towards the camera:

While Suzie is truncated above and below, only the upper plane is visible. Switching the southern math node to 'greater than' would show only the bottom plane.

As mentioned in the comments on your question, this can be achieved using the Geometry Node and the Separate XYZ Node. Using the Z output will give you a range of black and white values based on how much the normal of the face is pointing along the Z axis. A ColorRamp node could be used to isolate the parts of the mesh that are pointing straight up (completely white) but the math node works a bit better in this case. I used the Greater Than operation and connected the Z output to the top, and put a number just below 1 in the bottom input. Note that a number like 0.99999 will be displayed as 1, but not treated as such. This will then isolate the parts of the mesh that are pointing straight up or down, and the output can be used as the factor for a mix node.

Here's a quick scene showing my setup on an object:


Add horizon line and grid lines to render image Can anyone tell me how to make grid lines and a horizon line show when I render from Blender?  I am running version 2.82 and I can find no toggle for these.  I do NOT have any drop down that says "Overlays".  In the top right corner I have something that says "Options."  I am new to Blender.  I have been trying to change the background color and toggle grid lines and a horizon line on for about 5 days with no luck.  Any help would be appreciated.

The feature you are looking for does not exist, The laziest solution would be to just create a plane and sub-divde it a few times and apply a wireframe modifier.


How to stop a mesh from passing past the mirror point and merge with the part added by the mirror I am using a mirror to merge the mesh with its mirror created counterpart but it simply passes through the mirror and overlaps with it instead. Is there a way to automatically merge them in the centre like shown in the 2nd image or is the only way to apply the mirror and manually find the centre, cut it vertically and remove the excess

Here is an image of the mesh after applying the mirror modifier:

Here is an image of the manually merged mesh:

If you apply the mirror modifier as seen in the picture below, it will clip the mesh and auto merge it

It's specifically about these 2 values.


Selecting items in Outliner using hotkey (B)? I select multiple items using the B in the outliner window, but when I want to parent them (using CtrlP
) to the last selected object (I select object seperatley, LMB
), it won't parent.

Just to clarify - this is for organization sake - got lots of WGT from an armature, I just want to store them hidden from the outliner.

Ctrl + P for parenting only works in the 3D view As far as I know, not in the outliner, so pressing Ctrl + P in the outliner will not work only directly in the viewport.

There are other ways to do this if you want to do it directly from the outliner though, you could use B for selecting as you already do, then click and drag&drop to parent by clicking on the object's icon to the left and dragging from there over to another object you want to parent the selection to.

Would this work for you?

Edit I was just made aware that it only parents one object at a time though, so it may not suit your needs entirely.


How can I add / link nodes in / from the Texture Editor / Compositor? I would like to add some nodes to the Texture Editor, I would like to edit their default values and then link them together. I have found something on here that was helpful but they deviated to the Shader Editor and I could not seem to make the same thing work for me.

I have added some nodes but I don't know how to link them. This is my attempt:

import bpy

texture = bpy.data.textures.new('Texture Name', 'IMAGE')
texture.use_nodes = True

inv_node = texture.node_tree.nodes.new(type= 'TextureNodeInvert')
inv_node.location = 400,400
inv_node.select = False

disnoise_node = texture.node_tree.nodes.new(type= 'TextureNodeTexDistNoise')
disnoise_node.location = 800,400
disnoise_node.select = False
disnoise_node.inputs[2].default_value = 10

Ideally I want to add maybe only one node and be able to connect it to the output but I am not sure how to link added node to the output.

I would greatly appreciate someone pointing me towards some information.

Following example creates a new node group called NewGroup (based on How do I create a custom node group for the compositor?) for the Texture Node Tree, containing three Math nodes as well as one Distorted Noise node plugged together properly:

import bpy

# create a group
test_group = bpy.data.node_groups.new('NewGroup', 'TextureNodeTree')

# create group inputs
group_inputs = test_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
test_group.inputs.new('NodeSocketFloat','in_to_greater')
test_group.inputs.new('NodeSocketFloat','in_to_less')

# create group outputs
group_outputs = test_group.nodes.new('NodeGroupOutput')
group_outputs.location = (500,0)
test_group.outputs.new('NodeSocketFloat','out_result')

# create three math nodes in a group
node_add = test_group.nodes.new('TextureNodeMath')
node_add.operation = 'ADD'
node_add.location = (100,0)

node_greater = test_group.nodes.new('TextureNodeMath')
node_greater.operation = 'GREATER_THAN'
node_greater.label = 'greater'
node_greater.location = (-100,100)

node_less = test_group.nodes.new('TextureNodeMath')
node_less.operation = 'LESS_THAN'
node_less.label = 'less'
node_less.location = (-100,-100)

node_vorn = test_group.nodes.new('TextureNodeTexDistNoise')
node_vorn.inputs[2].default_value = 10 # Set scale to 10
node_vorn.location = (300,0)

# link nodes together
test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
test_group.links.new(node_add.inputs[1], node_less.outputs[0])
test_group.links.new(node_vorn.inputs[3], node_add.outputs[0])

# link inputs
test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

#link output
test_group.links.new(node_vorn.outputs[0], group_outputs.inputs['out_result'])

API link - List of all available node types.

Creating the links outside of the group is basically the same. Following Operator, creates a new Output node and the group node from above as well as linking both together properly:

import bpy

# Create texture group
def create_tex_group(context, operator, group_name):

    # Create a group
    test_group = bpy.data.node_groups.new(group_name, 'TextureNodeTree')

    # Create group inputs
    group_inputs = test_group.nodes.new('NodeGroupInput')
    group_inputs.location = (-350,0)
    test_group.inputs.new('NodeSocketFloat','in_to_greater')
    test_group.inputs.new('NodeSocketFloat','in_to_less')

    # Create group outputs
    group_outputs = test_group.nodes.new('NodeGroupOutput')
    group_outputs.location = (300,0)
    test_group.outputs.new('NodeSocketFloat','out_result')

    # Create three math nodes in a group
    node_add = test_group.nodes.new('TextureNodeMath')
    node_add.operation = 'ADD'
    node_add.location = (100,0)

    node_greater = test_group.nodes.new('TextureNodeMath')
    node_greater.operation = 'GREATER_THAN'
    node_greater.label = 'greater'
    node_greater.location = (-100,100)

    node_less = test_group.nodes.new('TextureNodeMath')
    node_less.operation = 'LESS_THAN'
    node_less.label = 'less'
    node_less.location = (-100,-100)

    # Link nodes together
    test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
    test_group.links.new(node_add.inputs[1], node_less.outputs[0])

    # Link inputs
    test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
    test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

    # link output
    test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

    # return the group
    return test_group

# Operator
class NODE_OT_texGroup(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Group (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.tree_type == 'TextureNodeTree'

    def execute(self, context):
        tree_id = context.space_data.id
        nodes_list = tree_id.node_tree.nodes

        # Create Output Node
        out = nodes_list.new('TextureNodeOutput')
        out.location = (200,100)

        # Create Grup
        custom_node_name = "my_node"
        my_group = create_tex_group(self, context, custom_node_name)
        grp_node = nodes_list.new('TextureNodeGroup')
        grp_node.node_tree = bpy.data.node_groups[my_group.name]
        grp_node.location = (0,0)

        # Link Group to Output
        tree_id.node_tree.links.new(grp_node.outputs[0], out.inputs[0])

        return {'FINISHED'}

# Panel
class NODE_PT_customPanel(bpy.types.Panel):
    bl_idname = "NODE_PT_customPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_label = "Custom Panel"
    bl_region_type = "UI"
    bl_category = "Custom Category"

    @classmethod
    def poll(self,context):
        return context.object is not None

    def draw(self, context):
        layout = self.layout
        layout.operator(NODE_OT_texGroup.bl_idname)
        layout.separator()

# Register
def register():
    bpy.utils.register_class(NODE_OT_texGroup)
    bpy.utils.register_class(NODE_PT_customPanel)

def unregister():
    bpy.utils.unregister_class(NODE_OT_texGroup)
    bpy.utils.unregister_class(NODE_PT_customPanel)

if __name__ == "__main__":
    register()

In order to use the generated node texture from above directly in the Compositor, you have to create a new Texture node and assign the texture to its slot:

# Operator
class NODE_OT_texGroup(bpy.types.Operator):
    """Operator to generate a texture and add it to the Compositor"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Texture (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        #return space.tree_type == 'TextureNodeTree'
        #return space.type == 'NODE_EDITOR'
        return space.tree_type == 'CompositorNodeTree'

    def execute(self, context):

        # ---------------------------------------------------------
        # Generate the texture
        # ---------------------------------------------------------

        # Create the texture
        my_texture = bpy.data.textures.new('TextureName', 'IMAGE')

        # Enable use nodes
        my_texture.use_nodes = True

        # Get the tree
        tex_tree = my_texture.node_tree

        # Clear default nodes
        for node in tex_tree.nodes:
            tex_tree.nodes.remove(node)

        # Create Output Node
        out = tex_tree.nodes.new('TextureNodeOutput')
        out.location = (200,100)

        # Create Group
        custom_node_name = "my_node"
        my_group = create_tex_group(self, context, custom_node_name)
        grp_node = tex_tree.nodes.new('TextureNodeGroup')
        grp_node.node_tree = bpy.data.node_groups[my_group.name]
        grp_node.location = (0,0)

        # Link Group to Output
        tex_tree.links.new(grp_node.outputs[0], out.inputs[0])

        # ---------------------------------------------------------
        # Compositor
        # ---------------------------------------------------------

        # Enable use nodes in the compositor
        context.scene.use_nodes = True

        # Get the tree
        comp_tree = context.scene.node_tree

        # Clear default nodes
        for node in comp_tree.nodes:
            comp_tree.nodes.remove(node)

        # Create the texture node
        comp_node_texture = comp_tree.nodes.new('CompositorNodeTexture')

        # Assign the newly created texture
        comp_node_texture.texture = my_texture

        # create output node
        comp_node_out = comp_tree.nodes.new('CompositorNodeComposite')
        comp_node_out.location = 400,0

        # link nodes
        links = comp_tree.links
        link = links.new(comp_node_texture.outputs[0], comp_node_out.inputs[0])

        return {'FINISHED'}


Modeling with Python I am new with Python programming, especially in Blender. I would like to know the possibilities of modeling with some scripts. I am currently modeling an object around a scan. I have to scan an object (with the Isense scanner), then modelize something aroung this object with blender.

I have more than 100 models to make and the base is always the same:

Create a point field that will stick the scanne (nearly always a kind of tube but the size differs sometimes)
Create a alveolar structure on this model (Voronoi diagram)

Do you know how I could do this ?

For your first step you don't need to use python, create a base and save it, then you can use that file as a starting point for each new object you create.

The simplest way to create a mesh object using python would be to define a list of vertices and faces that make up the mesh.

import bpy

verts = [(-1,  1,   0),
         ( 1,  1,   0),
         ( 2, -3,   0),
         (-2, -1,   0),
         (-1,  1.5, 1),
         ( 1,  1.5, 1),
        ]

# faces are a list of indices to each vertex from the above list
faces = [[0, 1, 2, 3], [0, 1, 5, 4]]

mesh = bpy.data.meshes.new(name="New Mesh")
mesh.from_pydata(verts, [], faces)
obj = bpy.data.objects.new('New object', mesh)
bpy.context.scene.objects.link(obj)

You might want to get familiar with the bmesh module which is used to perform most of the modelling tasks we do on mesh objects. The linked page contains an example of creating and editing a mesh.

As you don't know python very well yet I would suggest first trying out the sverchok addon. It uses nodes to generate mesh objects. The links on sverchoks home page are getting old so you may want to start with this playlist to get an idea of what you can do.


Why isn't my animation moving when played? I keyframed the propeller so that, every 5 frames, it spins around the local x 360º. However, when I play the animation, nothing moves at all. I'm starting at frame 0, so I'm not sure why it isn't working.

Before I parented the propeller to the fuselage, the propeller would spin, but on the global axis instead of the local axis. I read that the problem could be solved by simply parenting the prop to the fuselage, so that's exactly what I did.

EDIT: I figured out that it wasn't moving since it just thinks it has to get to the point at which it has revolved completely, so it just doesn't move. This creates another question: how do I make it so that the object does exactly what it's supposed to between keyframes, instead of just aiming for the end result?

Insert more key frames.
For example:

at frame 0 :   0 degrees rotation

at frame 2 : 144 degrees rotation

at frame 4 : 288 degrees rotation

at frame 5 :   0 degrees (360 degrees) rotation

Be aware also that 5 frames is just 1/5th (0.2) of a second at normal animation rates, so your prop is going fully rotate 5 times a second.


How to get the menu with Add Gear options back? I'm new to Blender and I've figured out how to make a gear but I have a question!

Shift+A > Mesh > Gears > Gear will add a new default gear to the build area and will bring up an Add Gear menu in the Toolshelf on the left where you can change all aspects of the gear.

But once the gear's object was moved / the interaction mode was changed / any other action was done, the Add Gear menu on the left disappears.
How do I get this menu back?

This menu is called the operator panel and it only pops up when you first create the object. If you make any changes to the object it will disappear forever.

To get it back you'll have to create a new gear!


How to set and change a Grease Pencil object's material in Animation Nodes I have a question about the material of a grease pencil.
How do I set different materials for the Grease Pencil objects duplicated in AnimationNodes?
Like motion graphics, I want to duplicate a grease pencil object to stagger its color and timing.
I was able to use the Build Modifier and Animation Nodes to stagger the replication and timing, but not the colors.
For example, object 1 to be red, object 2 to be blue, and so on, but they all have the same color.
Apparently only the last one of the Loops has been generated.
However, when I check with Loop VIewer, multiple materials should have their own colors.
I'd appreciate if you could answer this question.
I have attached a .blend file, so I hope you can check it.

The Material Instancer node didn't work on my AN-version, so I used a Create Material List node and fed that in the Invoke Subprogram node. Now that I had a working tree I played around a little bit. After checking the Deep Copy option of the Object Instancer the different colours for the individual strokes appeared.


How do you make an image emission without washing out the image? I am trying to make a computer monitor. This means I have to have an image texture for the screen. My image texture is currently connected to an Emission BSDF shader. Unfortunately, when the emission is bright enough to emit light, the image is white-washed. I tried adding a Brightness/contrast node to the image before pushing it into the Emission BSDF, but it seems to directly counter the Emission's strength.

The desired light level

The desired image brightness

You might want to learn how the view transform impacts the dynamic range of capture.

Using color management and custom LUTs you can work using a much higher dynamic range. Using simple shaders you can do things like this, where no other lights are used on the scene, just the image on the TV screen.:

See:

Make the flame of a candle more yellow

Render with a wider dynamic range in cycles to produce photorealistic looking images


rotate objects based on pixel value of video footage I am currently prototyping an art installation in eevee. Based on a persons silhouette I want knives to rotate 90° (towards the viewer), resulting in a 'mirror', where the unrotated knives make up the bright parts of the wall and the rotated knives reveal a black background.

Here is what I got so far:

How can I animate this concept based on green screen footage?

(just to be clear: the concept doesn't need to be realtime, nor control actual motors. It would serve to try out different knife arrangements and to communicate the idea to donors and technicians)

My first thought was to make a lookup on each frame of the footage, where the individual knife would correspond to a point in UV-space of the video footage. Alpha 0 would leave the knife unrotated, alpha 1 would rotate it 90° on local z.
Can I archive this with animation nodes? Or do I need to script? And how could that look like?

Create the alpha mask in the compositor and render it as an image sequence. Then load those images—as separate images—into blender and follow my answer here to access image pixels and orient objects based on it.

To get this to work for the image sequence, adjust the image access expression to be something like this:

bpy.data.images[str(frame).zfill(3)].pixels[:][0::4]

Where frame is your integer frame number. This assumes the images are named 001, 002, 003, ..., adjust the expression to your naming style. This will access a different video frame image based on your scene frame number, effectively giving you the video pixels.


How do I delete keyframes on a plane track? I've got as plane track and I've keyframed the corners, however I want to delete some of the keyframes...they don't appear to be in in the dope sheet or graph editor. If I select the plane track and go to the frame (with the keyframe) and press the delete keyframe button (at the bottom of the UI) nothing happens.
Cheers
Jim

Move The Green Timeline Marker On The Frame You Want to Delete The Keyframe on and press alt+I this will delete all current keyframes on that frame.


How to subdivide a triangle fan (with some of the tris being ngons)? I have a following mesh, in which I have marked the faces I would like to subdivide:

I would basically would like to add an inner ring to this fan. Subdivide doesn't work with this as some of the triangles are actually ngons due to the holes going through the wheel (well, it does something, but the result is far from being clean).

What I want to do is to create a bearing hub. Here's a screenshot of how this looks like with the bearing superimposed:

So what I would like to do is to insert an inner ring (or even two) into those selected faces to create an outwards-extruded hub for the bearing.

What is the clean and efficient way to achieve this?

The easiest way would probably be to Vertex Bevel (Ctrl+Shift+B) the middle vertex.


Fixing artifacts from an imported Medium sculpt? I'm creating some assets for a game I'm making using Medium by Oculus, but when I import it into Blender it leaves me with strange lighting artifacts. I tried dissolving some vertices and edges to try and fix them but it would usually cause them to move a little bit.
https://imgur.com/a/K4i0jrZ

This is an exported .obj of the sculpt with 10% of the polygons. If I do a 100% export (half a million polygons) the lighting artifacts aren't there until I decimate again in Blender. Also I'd like to figure out how to Make the edges harder and straighter, since that's how they were in the sculpt.

Automatic decimation on a hard edge model like this will always produce such artifacts.
Either you model with fewer polygons, so you do not have to decimate or you need to import the highres model into Blender and retopologize it.
https://www.youtube.com/watch?v=DD4jJc_01do


Subdivision Surface messing up image texture? I am currently modelling in blender and have created my own image texture in photoshop. Here is the version withouth subdivision surface:

Here with SS turned on:

As you can see, it looks very weird in regions where multiple vertices are in the same spot (I used that to create the triangular shape of the wings). I've gone through all settings in the SS menu, but none could help.

I've also made sure that the image texture covers all faces that it should completely, so this cannot be the issue.

Any help would be appreciated!

I am not sure, but having multiple verticies may be the problem. Merge them Alt + M and then see what the results are.

Some other things to consider are what your edge flow is like at those positions. If there are no edge creases or loop cuts, then the subdivision modifier may round your objects at those locations. With lighting, normals etc, this may be giving you that appearance?


Rotate Everything On The Z Axis i was just wondering if someone could tell me how to rotate everything at the same time on the Z Axis.
https://i.ibb.co/YRfMGGm/adsasd.jpg

You could parent all the objects to one object and rotate that on the Z axis.
Select all objects with ⇧ Shift + Click, on the last object press Ctrl + P then choose Parent to Object.
Now rotate the last object you selected and everything will rotate with it.


Locate and assign weights to vertices with no weights in a Mesh I have a mesh and I make automatic weighting. But the problem is that some vertices are not assigned to have any weight, and I can't locate these vertices due to the complexity of my mesh. I'm asking if there is a way where I can locate and assign auto-weights to these vertices? If anyone could please advise.

I had this problem and came here so hopefully my script will save someone some time and headache looking through the blender API

# Usage: with a mesh selected, run the script. It will add a new
# vertex group to the mesh called 'ProblemVertices'
# The script will add any vertices with a total weight != 1.0
# to the 'ProblemVertices' group.

import bpy

print("Start script")

me = bpy.context.object.data                # the selected mesh
grps = bpy.context.object.vertex_groups     # all vertex groups in the mesh
grps.new(name="ProblemVertices")            # add a vertex group to the mesh
myvertexgroup = grps[-1]                    # the last vertex group in the mesh - our new group

# optional part which when uncommented deletes vertices
# from groups where the vertex has weight 0 for that group.
#for vertex in me.vertices:
#    for grpelement in vertex.groups:                        # for each vertex group element in the mesh
#       if grpelement.weight == 0.0:                        # if the vertex is unweighted
#           grps[grpelement.group].remove([vertex.index])   #remove it from that group
#           print("Removed Vertex from group")
#       if len(vertex.groups) == 0:                            # if the vertex is not a member of any groups
#           myvertexgroup.add([vertex.index], 1.0, 'ADD')          # add it to the last group with weight 1
#           print("Unweighted vertex added to group")

for vertex in me.vertices:                              # for each vertex
    thisweight = 0.0                                    #keep track of total weight
    for grpelement in vertex.groups:                    # for each vertex group element in the mesh
        thisweight += grpelement.weight
    if thisweight < 0.9999 or thisweight > 1.0001:          # if the vertex weights don't add up to roughly 1.0
        myvertexgroup.add([vertex.index], 1.0, 'ADD')           # add the vertex to the last group with weight 1.0
        print("Vertex weight not 1.0 found")

print("Finished script")


Why isn't this object becoming transparent in the render? I'm new to Blender and trying to make an image. I'm almost there but something is confusing me. Right now, I have this blue rectangle that I want in the same plane as the other objects. For example, here it is from a couple angles:

and rendered:

Now, I want that blue rectangle to be mostly transparent, so you can see the rest of the shape that it coincides with very clearly. So, I went to the materials tab with that object selected, clicked the transparency box, and messed with the alpha parameter, making it very low:

Now, when I render it, it does look different...but isn't actually transparent:

what am I missing here? How can I achieve this?

You have set your transparency to Mask. To quote the Blender Manual:

  This option simply masks the Background. It uses the alpha channel to
  mix the color of each pixel on the active object plane with the color
  of the corresponding background pixel, according to the alpha channel
  of the pixel. Thus for alpha = 1, the object color is seen – the
  object is completely opaque; but if alpha = 0, only the background is
  seen – the object is transparent (but note that any other object
  behind the active object disappears).

Essentially, any object behind a 'Mask' object will not be visible.
Instead, set the transparency type to Z Transparency or Raytrace:


Driver is not working as expected I have put a driver in the z rotation of an empty and made the variable a single property, where the path is the count in the array modifier.
My expression is 360/variable. I see that the driver value is as expected, but the rotation of the object is not like the driver value. Why this is happening and how can I fix it?

The one with orange is right but the blue is wrong.

That comes from the difference between degrees and radians. For some reason, the drivers evaluate rotation in radians no matter what the  Units are set to in the Scene settings.

To get the expression working you have to convert radians to degrees. So your expression would be.
360/Array * 0.0174532925 or 360/Array * pi/180 or even shorter pi*2/Array

There are 0.0174532925 radians in 1 degree, so just multiply your expression by the difference between degrees and radians.


What is the function of the Clip option of Quad View? I'm a Blender beginner and My Blender version 2.80 beta. I was reading about Quad View here. I do not understand the function of Clip option which I found in the Properties region under the "Quad View" section. When I turn it on or off, it seems it does nothing. The manual and pop up menu triggered by clip option says "Clip objects based on what is visible in other side views." I do not understand what it means. Can anyone help me by explaining this a little bit thoroughly?

Like the names says it clips whatever is outside view.

In the case of a quad view, if you pan or move one of the orthographic views (front, top, left or right) whatever goes outside that specific viewport gets clipped or hidden in the other ones (except for perspective views).

If in top view you pan your scene in such way that part of the objects stay out of that viewport, then those objects also get hidden in the other views as well, despite being visible otherwise.


When I Render, it renders a still image of one of my textures and not the camera view and animation Here is my Blend File

I've made a scene with a small tv that plays a video.

But when I click render, blender decides to render the texture on the tv only, and not the animation I set up.

https://imgur.com/a/Y96qT

somewhere there must be an improper setting that isn't letting me render the camera view but I've searched and can't find it.

Anybody got an answer?

You have your composite node set up to apply your movie over top of the entire render.  Just uncheck Compositing under Post Processing


Hard-Trim a VSE project movie clips for backup/storage Is there a way (preferably scriptable) to hard-cut all the BIG movie clip rushes and footages used inside a movie.blend project directory in order to store it away for future reference?

I'm often only using 1 minute bits out of HUGE 2 hours clips, so right now the project directory is 4.5Gb big for a 3 minutes videos, I can't afford that kind of storage :)

Automating the process would require some work, but https://superuser.com/questions/377343/cut-part-from-video-file-from-start-position-to-end-position-with-ffmpeg has some answers on how to make excerpts from larger videos.

TLDR:

ffmpeg -i in.mp4 -ss [start] -t [duration] -c copy out.mp4

Unfortunately, you'll have to create replacement strips that refer to the excerpt clip and get things frame-accurate again.

While I can imagine writing some python that creates these replacement strips, I am not confident that they will be frame accurate.


Python - 3DView Border Select I am scripting a plugin in Blender Python (using the newest Blender version, 2.69) and I want to select a region with the Border Select tool in the 3DViewport. I have looked this up in the documentation, and it is extremely confusing.

http://www.blender.org/documentation/blender_python_api_2_69_release/bpy.ops.view3d.html?highlight=select_border#bpy.ops.view3d.select_border

I need an example on how this is supposed to work. Every time I just put the following in my script, it gives this error.

  bpy.ops.view3d.select_border(gesture_mode=0, xmin=0, xmax=0, ymin=0, ymax=0, extend=True)

(Note, the large black spots in the picture are where I took out my folder structure ;) )

Thanks in Advance!

The first problem is the context view3d.select_border() should be called inside the 3D_VIEW region,
the second problem is the gesture mode which should be 3 for the function to work.

A minimal code example will be :

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        override = bpy.context.copy()
        override['area'] = area
        override['region'] = area.regions[4]
        bpy.ops.view3d.select_border(override, gesture_mode=3, xmin=0, xmax=600, ymin=0, ymax=600, extend=True)
        break

And this is more extended example which implement the border selection tool ( when you press B ) the following script is a modal operator with bgl drawing function to draw the box of selection.

run the script
in the 3d view hit Space and type Simple Box
start selecting by holding the LMB and end selection by releasing it

import bpy
import bgl
from mathutils import Vector
from bpy.props import IntProperty, BoolProperty

def draw_callback_px(self, context):

    bgl.glEnable(bgl.GL_BLEND)
    bgl.glColor4f(1.0, 1.0, 1.0, 0.5)
    bgl.glLineWidth(2)

    if self.selecting :
        # when selecting draw dashed line box
        bgl.glEnable(bgl.GL_LINE_STIPPLE)
        bgl.glLineStipple(2, 0x3333)
        bgl.glBegin(bgl.GL_LINE_LOOP)

        bgl.glVertex2i(self.min_x, self.min_y)
        bgl.glVertex2i(self.min_x, self.max_y)
        bgl.glVertex2i(self.max_x, self.max_y)
        bgl.glVertex2i(self.max_x, self.min_y)

        bgl.glEnd()

        bgl.glDisable(bgl.GL_LINE_STIPPLE)
    else :
        # before selection starts draw infinite cross
        bgl.glBegin(bgl.GL_LINES)

        bgl.glVertex2i(0, self.max_y)
        bgl.glVertex2i(context.area.width, self.max_y)

        bgl.glVertex2i(self.max_x, 0)
        bgl.glVertex2i(self.max_x, context.area.height)

        bgl.glEnd()

    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)
    bgl.glColor4f(0.0, 0.0, 0.0, 1.0)

class SelectOperator(bpy.types.Operator):
    """simple box selection """
    bl_idname = "view3d.box_select"
    bl_label = "Simple Box Select Operator"

    min_x = IntProperty(default = 0)
    min_y = IntProperty(default = 0)
    max_x = IntProperty()
    max_y = IntProperty()

    selecting = BoolProperty(default = False) # just for drawing in bgl

    def modal(self, context, event):
        context.area.tag_redraw()
        if event.type == 'MOUSEMOVE': # just for drawing the box
            self.max_x = event.mouse_region_x
            self.max_y = event.mouse_region_y

        elif event.type == 'LEFTMOUSE':
            if event.value == 'PRESS': # start selection
                self.selecting = True
                self.min_x = event.mouse_region_x
                self.min_y = event.mouse_region_y

            if event.value == 'RELEASE': # end of selection
                #we have to sort the coordinates before passing them to select_border()
                self.max_x = max(event.mouse_region_x, self.min_x)
                self.max_y = max(event.mouse_region_y, self.min_y)
                self.min_x = min(event.mouse_region_x, self.min_x)
                self.min_y = min(event.mouse_region_y, self.min_y)

                bpy.ops.view3d.select_border(gesture_mode=3, xmin=self.min_x, xmax=self.max_x, ymin=self.min_y, ymax=self.max_y, extend=True)
                bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
                return {'FINISHED'}

        elif event.type in {'RIGHTMOUSE', 'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):

        if context.space_data.type == 'VIEW_3D':
            args = (self, context)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')
            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "Active space must be a View3d")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()


Weird clipping after applying mirror modifier and merging vertices Video:
https://drive.google.com/file/d/1MVZNXL4hxZHGoRhc0QlMnFVmv6hdBeQL/view?usp=sharing
After applying a mirror modifier & merging the vertices, this faint line shows.
Does anyone know what causes this and how I could fix it?

Caused by the same thing causing you to not be able to select the loop of vertices. Delete the face created by the vertices.


Blender Mesh to UE4: Correct normals but missing faces i have imported the following Blender Mesh as a fbx into UE4 getting the following result. The Mesh might have some incorrect normals, but the result I get in UE4 implies way more incorrect normals then there seem to be. Does anyone have a hint for me ?

You might have Normals facing in the right direction, but still get some missing faces in UE. Here's some solutions:

Try to Triangulate your Mesh in Blender (Add Modifier >> General >> Triangulate) and then Export it.
Apply all Transformations in Blender before exporting your model (in Object Mode, go to the Object >> Apply >> All Transforms)

By the way, you can also disable Backface Culling in Blender to be able to see your model without displaying Normals direction or color.

You can also activate double-sided Materials in Unreal Engine, but it will slightly reduce performance (depending upon the mesh itself).

Hope it helps!


Videos not uploading into video editor properly I'm having a problem with the video editor where the "movies" I'm trying to upload into them aren't uploading into the video correctly. They do this

There is no way to move the clip past the 0 mark and it does not show up on the preview.

The problem started after I had initially uploaded the clip into a video sequence and my computer powered off without me saving this and several other clips I had previously used.

When I opened the file again and tried to upload the clips again, they all did this. I tried opening a fresh blender document and tried to open them into blender's video editor, they did the same thing.

I thought maybe the files were corrupted, but I had backups on my cloud, so I tried to delete the files off my computer to reload them, but couldn't, getting the error that the files are in active use, however, I can't find where, and it can only be in blender.

I've tried changing my properties and deleting what I have so far and still no fix. Does anyone know the fix to this problem?

Here is the file:

Thanks

Okay, after working on this all night, I found the solution. It was rather simple too.

While working on my original project, I had created proxies for all my videos, however, I wasn't aware that by creating those proxies I had inadvertently created an additional folder where those proxy videos were stored. Somehow the proxies that I created corrupted any similar video files so they wouldn't drop correctly in blender video editor. I've deleted that proxy folder, and now the videos are loading correctly into blender.

Thanks, Jan Kanderabek and 3pointedit for your feedback.


how to specify a scene to load in blend4web web player How to specify a scene to load in blend4web web player?

The load attribute should be used to load a scene, this attribute contains relative path to a JSON file.
https://www.blend4web.com/doc/en/web_player.html#webplayer-attributes


Copy a mesh along an oblique direction and scale I have to copy the rail panel along the dashed yellow lines and then scale it along the same direction in order to create a new smaller panel and end the stairway. I have tried Sh-D / GG / C but does not work.
Also turned to local view. Any chance to align the xyz axes temporarily to that object?

In edit mode in one of the objects already there, select one of the already existing edges parallel to that direction, then go to the transformation orientation panel and click the + button.  This should create a custom 'Edge' transformation orientation, which you can use to arrange things as needed, in new or different objects, or with part of objects in edit mode.

To make a thinner rail panel, you could duplicate a panel, go into edit mode, select one of the vertical edges and then transform it along the Y direction of this custom Edge transform orientation - though in this case you can also do it possibly even quicker by using the Edge Slide tool (default hotkey G, then G again, when an edge is selected).  Scaling will not work here as the object is not symmetrical along that axis, and the opposite corners will distort, losing you the parallel lines.


Accessing data in the UV layout in Python? I learned how to export the UV layout from here,

but am still unclear how to access the data in Python.

By "access the data," I mean getting an array that tells me where each vertex ends up in the UV map (in other words, UV and vertex ID for each of the vertex above). This is why exporting the UV layout as a rasterized .png, as above, is not acceptable.

The hacky way in my mind...

I can imagine exporting the UV layout to a vector image (.svg and .eps supported by the above-referenced addon), and then extracting the coordinates from the vector image, but this sounds like a hack that requires parsing .svg or .eps. I believe since we can export it, there must be a way for us to directly access the data.

What I tried

I've fiddled with tessface_uv_textures, uv_layers, uv_textures, but they are all either empty lists or None, probably because my material is just a diffuse shader of a color. But this should have nothing to do with the UV layout though, right?

Turns out I need to get into the EDIT mode and select all vertices, and then perform the projection.

bpy.ops.object.mode_set(mode='OBJECT')
bpy.context.scene.objects.active = obj
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.uv.smart_project()
bpy.ops.object.mode_set(mode='OBJECT')

After that, accessing data is as easy as the solution given in Get/Set coordinates for UV vertices using Python.


Why am I getting an OpenCL driver error with BlendLuxCore when I'm rendering using CPU only? I'm running Blender 2.8.3 on Ubuntu 18.04. I downloaded BlendLuxCore for Linux 64 bit and followed the instructions to install it as an add-on to Blender.
When I select the LuxCore render engine, set to render with the CPU, it fails to render and I get the following error message:
Error | OpenCL driver API error (code -1001, file:/home/vsts/work/1/s/LinuxCompile/LuxCore/src/luxrays/devices/ocldevice.cpp, line 72): -1001

This is very confusing because as I understand it, OpenCL is analogous to CUDA and is used for GPU computing. Why would this be an issue for CPU rendering?
I found an identical issue to my question posted on GitHub, but I don't see how the response there helps. Do I somehow need to set up OpenCL drivers on my computer even if I'm only interested in rendering with my CPU? And if so, why?
In searching for a solution to this, I've seen references to there being different versions of LuxCore for CPU and GPU, but at least for the more recent versions the download page does not make this distinction, and the render properties panel allows you to select either CPU or GPU rendering.

So, I took a wild guess and installed the OpenCL running environment for my intel CPU only from this site: https://software.intel.com/content/www/us/en/develop/articles/opencl-drivers.html#latest_linux_SDK_release
After I did that, LuxRender works.
If somebody wants to add an explanation about why I needed to do this in the first place (I am partially confused because the LuxRender web site makes no reference to this being a dependency you need to set up before installing), that would be cool. But, my problem is solved, and I'm going to tentatively assume that LuxRender is using OpenCL as a sort of backend to abstract away hardware details like whether you are on a CPU or a GPU and what types.


Scripting IvyGen with Python I am quite new to Blender and scripting in it. I am looking for a way to use IvyGen in script, but found no tutorials. I checked the Info panel in Blender, but it only says

bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()
bpy.ops.curve.ivy_gen(updateIvy=False)

whenever I add an ivy. I am expecting to see more parameters (to control the location, the appearance, etc.) than just it. Indeed, I've tried to run these commands on Blender Python console, but just got:

{'PASS_THROUGH'}

So I am wondering if you could help me understand how scripting is actually working with ivy_gen and maybe some guide of how I can get started with it.

You can call the ivy_gen operator with specific values for all the parameters you would later edit in the context menu:

bpy.ops.curve.ivy_gen(
    maxIvyLength         = 1,
    primaryWeight        = 0.5,
    randomWeight         = 0.2,
    gravityWeight        = 1,
    adhesionWeight       = 0.1,
    branchingProbability = 0.05,
    leafProbability      = 0.35,
    ivySize              = 0.02,
    ivyLeafSize          = 0.02,
    ivyBranchSize        = 0.001,
    maxFloatLength       = 0.5,
    maxAdhesionDistance  = 1,
    randomSeed           = 0,
    maxTime              = 0,
    growLeaves           = True,
    updateIvy            = False
)

To fully automate this, all you need to do prior to calling this operator is to place the 3D cursor where you want your ivy to start growing:

bpy.context.scene.cursor_location = (x,y,z)

And to also select the object you want to grow your ivy on:

bpy.context.scene.objects['MyObject'].select = True
bpy.context.scene.objects.active             = bpy.context.scene.objects['MyObject']


How Can I create this Slime dripping down effect? I want to create this cool looking Slime Effect in Blender with a Mesh:

I researched a bit for an answer, but I could not find something useful.
To be clear I want to use a basic Mesh like a Cube or a Cylinder and edit it until it looks like this and I don't want to make a render with this.
I want to export the map to Unity and thats why it would be the best if I would use a basic mesh for material and stuff.
The slime itself should be dripping down a wall.
My Question is which Mesh should I use and with which tools can I achieve this effect.
Maybe you can suggest a good tutorial or you can explain me how to achieve this effect.
Here are some more examples from what I meant:

Here's a node group.  Either of these Math -> Divide nodes should give you something to start from.  There are places where this produces some weird lines due to the subtract operations, just move the Location on the Mapping node around until you get something workable.


Lag in Blender 2.83 Modeling (Edit Mode) I'm a beginner in modeling and have been learning how to create a person basemesh in 3D. I just finished making the eyes of my person, and am about to begin the nose. However, my Blender has become extremely laggy. This was not a problem earlier until I had finished the eyes. My current file size is 7.7 MB.
I checked the computer resources, CPU utilization does not go over 22%, and memory utilization does not go over 45%. I am not sure what is causing the extreme lag. Any ideas or pointers would be highly appreciated.

Which OS are you using ? Try Reinstalling Blender, i am also getting a lot of Problems in Blender 2.83.1, it must be optimised.
I recently switched to Linux, and when I start Blender, view port runs at 5 fps, while previous versions ran extremely smooth, i shutdown my PC (not restart) and retry after 10 minutes and start blender just when the PC boot, and it ran perfectly fine.


Blender is not on the start menu The blender shortcut says it's pinned to start as shown in the photo,

but when actually looking through the start menu or the Windows search, it's nowhere to be found.

To solve this problem you can copy the blender shortcut and go hit the WindowsKey+R or search for Run. Next type %appdata%\Microsoft\Windows\Start Menu\Programs and hit enter. Then a folder will open, just paste the shortcut into the folder and it should show up in your search bar.
Next time please ask questions as such on https://superuser.com/


strange lighting, problem with normals? I'm trying to create a simple human mesh. While working on the torso, I noticed some shading errors. They look even worse when you move the camera around.

The one on the left is with shading set to smooth and subdivision set to 5 on basic, the one on the right is shading set to flat, and no subdivision.

Here's another one...

I've found that I can replicate the effect by simply making vertices go into the mesh.

Does anyone know how these could be fixed?

As you  have discovered, this can be caused by non-planar faces.
Ngons are particularly susceptible to being non-planar, but this can happen to quads too.

You can fix these automatically by selecting everything (A), then pressing Split non-planar faces in 3D view > Header > Mesh > Cleanup:


What is a shading unit and a texture mapping unit in a GPU ? and how does it affect blender? in a graphic card spec like here for example

  The GeForce GTX 970 was a performance graphics card by NVIDIA,
  launched in September 2014. Built on the 28 nm process, and based on
  the GM204 graphics processor, in its GM204-200-A1 variant, the card
  supports DirectX 12.0. The GM204 graphics processor is a large chip
  with a die area of 398 mm² and 5,200 million transistors. Unlike the
  fully unlocked GeForce GTX 980, which uses the same GPU but has all
  2048 shaders enabled, NVIDIA has disabled some shading units on the
  GeForce GTX 970 to reach the product's target shader count. It
  features 1664 shading units, 104 texture mapping units and 56 ROPs.
  NVIDIA has placed 4,096 MB GDDR5 memory on the card, which are
  connected using a 256-bit memory interface. The GPU is operating at a
  frequency of 1050 MHz, which can be boosted up to 1178 MHz, memory is
  running at 1753 MHz.  Being a dual-slot card, the NVIDIA GeForce GTX
  970 draws power from 2x 6-pin power connectors, with power draw rated
  at 148 W maximum. Display outputs include: 1x DVI, 1x HDMI, 3x
  DisplayPort. GeForce GTX 970 is connected to the rest of the system
  using a PCI-Express 3.0 x16 interface. The card measures 267 mm in
  length, and features a dual-slot cooling solution. Its price at launch
  was 329 US Dollars.

we have some vocabulary:

-shading unit

-shaders

-texture mapping units

does thoses caracteristics have any impact inside of blender ?

like the limit of material slot we can have?

the limit the number of image texture slot we can have?

the limit the nodes we can have?

for exemple, a scene with 500 material; 3000 image textures, and a material with a node tree of thousands of nodes, is possible with a gpu, or there's some limit?

These statistics do not impact blender directly. You can have thousands of nodes and shaders and terrabytes of textures if you want and if your PC can handle it.

This is where these components come back into play. The better a GPU is the better it can handle those things. Your GPU can't hold terrabytes of textures, and you're probably going to kill your rendertimes with a nodes setup thousands of nodes deep.

The units mentioned here are directly related to the architecture of the card. A texture mapping unit for example is what's actually doing the caculations for UV unwrapping. Having less of them doesn't change the size of your possible UV map, it just means it takes longer to calculate the unwrapping.


Hiding files in a Blender Game I'm making a video game using Blender's Game Engine, making a lot of progress and learning a lot as I go. Pretty much all data for a game gets packed into the ".exe" for the game when you export it automatically, however I have some scripts that I've written that need to access files externally on my harddrive and I haven't figured out a way to freely "pack" these files into .Blend/.Exe.

I want to be able to just drop a bunch of files inside of my game without doing something as messy as making up logic nodes that don't do anything that are just bound to some of these files so that they get copied in. Is there a way to just put things into my Blend project freely like it's its own harddrive?

As it is right now, I have a bunch of assets that sit outside of the game's .exe and anybody with the game could just freely snoop through some of these textures. No game designer wants that.

Open blender, and select File > External Data > Pack All Into .blend.  This should pack all your game assets that are in use into the .blend.  Then, when you save it as a .exe, they should be in the .exe.


Can I divide mesh to perfect squares? I want to divide/retopo mesh to perfect squares. Is there an addon or script or something to help me with this?

I don't care if the very boundaries of the mesh woul be cut short, but all internal polygons need to have square shape. Small change in the overal shape doesn't matter at all.

In your case, I would keep just the top and bottom edge loops and delete everything in the middle. To select the edge loops ShiftAltRMB on the top and bottom, then Invert I and Delete X.

Then use Bridge Edge Loops (which can be found in the Specials menu W).

You can adjust the parameters until you get edge spacing that is much closer to squares.

As Duarte Farrajota Ramos pointed out, you cannot get each face to be a perfect square, or you end up with a cylinder. But you can get even mesh density this way, which I'm guessing is what you are after.


Change weight painting Colors? I'm red green colorblind and I'm having difficulty with weight painting as a lot of the colors involve bleed into each other.

I did some searching around but couldn't find anything so is there a way to change the color scheme that weight painting uses?

If you are using 2.79: You need to go to File >> USer Preferences >> System >> Custom Weight Paint Range

If you are using 2.80: You need to go to Edit >> Preferences >> Editing >>Weight Paint >> Use custom colors.

Hope that helps
Good Luck


How to get rid of these creases? Here's a peak in object mode to let you know what is causing it.

If I remove these quads and make it one solid face, I get a big ugly n-gon.

What do?

Those creases are basically the result of there not being enough geometry for the normals to be averaged smoothly over the mesh.

It would be helpful to know what exactly you're doing here. Is this a model you're working on, and can change? Or is this an imported model you're modifying? If this model is the low poly version of a game asset, then those creases could potentially be corrected by a normal map.

If you want smooth normals without resorting to a normal map, you need sufficient geometry to support that. This basically means a loop of faces around hard edges, or in your case holes.


Smooth Volume Rendering without Denoise in Cycles I am trying to get my volume to render smoother without using denoising in Cycles. Testing various render settings for volume I can't seem to achieve the desired result. I figured the volumes step rate render setting would do this, since that is how it's described, but after testing I wasn't able to discern any noticeable difference between values of 0.1, 1.5(default) and 5 even when zoomed in 500%. Sample rate of 2k to 5k doesn't show much improvement. I'm wondering if it's not a setting in my principled volume shader, or maybe my lighting setup (hdr + 5 points, 3 areas) though the main light running through the volume is the hdr.

There are two settings that affect this - one is the 'Step Rate' that you have found, the other is the Max Steps - and both have an impact.
It used to be that the two settings behaved individually - and the volume would be rendered with a 'Step Size' and then if the Max Steps was reached the volume would simply be ignored for the rest of that light ray. This was fine in most cases but could produce unexpected results, with the volume effectively "cut off" as soon as the limit was reached. Furthermore, changing the Step Size while leaving the Max Steps unchanged would change how much of the volume was rendered.
Now the Step Size has been replaced with the Step Rate and the Max Steps has been enhanced so as not to cut off the render by automatically generating a 'Step Size' behind the scenes based on both the Max Steps and the Step Rate. This means that reducing the Max Steps will no longer cutoff the volume but will affect the size of the steps - so having Max Steps set too low will limit the effect of more precise Step Rate.
The solution is to increase Max Steps to allow the Step Rate to have more of an effect. This will increase render times since more steps are required to traverse the volume but can produce more detail in your volumetrics.


Reverse effect of Defocus node? I am trying to reverse the effect of the Defocus node as shown below :

As you can see the Front is being blurred and the back is focused , is it possible for the front to be focused instead?

Add a vector normalize node and a color ramp before the Z input on the defocus node. Playing with the sliders on the color ramp you should be able to find the point where you want to focus.


How to fatten body parts in blender I need to thicken ("fatten") some parts of my mesh. I tried to scale X but it deforms and make a mess. How do I solve this?

Try the Shrink/Fatten tool in edit mode with proportional editing turned on.
To use Shrink/Fatten press Alt+S
To enable proportional editing press O
Example of this method used on part a sphere:


How big should i make my assets for a game So, i am trying to make a small game level to test some stuff and I made a tree that is 4.7 million tris, is this way too much and do i need to reduce the size, or is this ok

Well, that could be ok if the only thing you're going to do in your game is showing this tree alone... and some engines would probably break the same...
A basic character (human mesh + clothes) for vg is good at, lets' say, 15K polys on low-end mobile devices...
To keep a 4M model high quality you need to create a low poly model, then bake all the maps your game engine needs to use the low poly like an high poly, saving processing power in your game engine.

This is called baking and is better explained on Polycount here.
Blender-wise, you could try to use the AssetGen addon, for instance, to test the process...


How can I move an object with a UV map to a DIFFERENT project? I've got an object that I developed in one project that has been decimated and makes use of a UV map. When I copy the object into a new project, the object comes over and the UV map comes over, but the texture that is overlaid on the UV map seems to get lost in the shuffle. The object is just a splattering of purples and blues (the UV map).

From what i understand you want to move the image texture connected to the object's material to your new project file. There's two ways i know how to do that.

You can go to your old project, open the UV/Image editor tab, select your image and click Image > Save As Image. You can then bring this image into your new project from the location where you saved it at.

Another option is to append the files from your old project into your new one. You can do this by pressing Shift+F1 or by going to File > Append. From there you must locate your old .blend and find the required files in the corresponding folders.

I hope this was useful to you. I'm sorry if i misread your question, feel free to correct me.


How can I do a monitoring/guard CCTV camera effect with blender? How can I do a monitoring/guard CCTV camera effect like pictured below with blender?

If you are trying to achieve this effect on the right:

Use the compositor and distort the source image with a Lens Distortion Node in projector mode. This can make it appear like a fisheye lens. Security cameras have a wide field of view. You could add horizontal lines to simulate an old tube monitor screen. Use a wood texture node and scale the x axis to 0 and the y or vertical axis to a very large value, then multiply it with the source, after distortion.

Also security or guard cameras operate in low light so you could remove the color with a  Hue Saturation Value node.

For extra value you could add glare to the source image to blow out highlites and make a slightly blurry image, as these cameras often have poor optics. If you are making this effect in 3D I would still suggest using the compositor.


Diffuse (cos(theta) or Random) Scattering of Particle Collisions I'm trying to get particles to bounce off a surface in a scattered fashion. Currently the collisions have the particles bouncing normally, but is there a way to have them bounce off randomly? Do I have to program this into blender through python or is there a setting I can use for this? If python is needed, is there somewhere I can go to get info on this? I've attached a picture to help clarify things a bit. The green arrows are normal collisions and the orange ones are the random scattering I'm trying to get.

Rough Surface
You could add some roughness to your collision object or to your particles. Fist Subdivide it. Next give it a Displace modifier with some texture. Cloud texture seems to work just fine. Then enable physics for Collision. The order of your Modifier stack is important. Collisions has to be last and Subdivisions has to be first.

Force Field Turbulence
Another option would be to add a Turbulence Force Field next to the wall.
Strength of 100 and Max Distance of 100 cm seem to work well for me.


IK constraint rotates the wrong direction As can be seen in the picture below ~~

What should I do to fix this? ~~
Tried setting Pole Target. The angle got right but the mesh looks wrong when deformed

blend file:

You have a few issues:

In Edit Mode, select mixamorig:LeftUpLeg. Under Bone:Transform uncheck lock, or the rest won't work.
In Edit Mode, select the root of mixamorig:LeftUpLeg and the tail of mixamorig:LeftLeg. Shift+S, Cursor to Selected.  This will place the cursor directly between the two.  Select the root of mixamorig:LeftLeg (the "knee") and Shift+S Selected to Cursor.  This will snap it right to the middle. From the right view, move it a bit forwards.  Part of your issue is that you have the initial position with the knee bending inside.  Having a slight bend forwards will help the IK solve correctly.

Select mixamorig:LeftUpLeg and mixamorig:LeftLeg. In Edit Mode, hit Control+N and recalculate the roll angles to "Global X Axis."  This'll align the Z to the X axis, keeping the bone X axis facing forwards.
In Edit Mode, select the whole bone mixamorig:LeftLegCtrl. With the cursor still at the knee, Shift+S Snap Selected to Cursor. The pole vector bone will snap its base to the knee.  Move it forwards a ways from the right view.
Assign the pole vector object to the IK contstraint on mixamorig:LeftLeg.

Once that's all done the IK should work fine.


I made a game and I put a skybox or simply box but when I start game the camera isn't displaying it When I start the game or press P it doesn't display my big brow sky cube.

There is a Very simple reason why your sky box is not displaying. The reason for this is that you did not reverse the normals on your cube.

If you enable Backface Culling and set the normals to display,

You will notice that your normals are pointing outward. This means that you can see them from the outside.

If you reverse the normals, (Select the faces that are pointing the wrong way and click Flip Normals

it will make the normals point inward.

Now you are seeing through the faces pointing inward to the other side.
If you were inside the cube, you will see all the faces properly.


Molding an object - Negative mold I am trying to use my 3D Scanner and 3D Printer to make Molding of the objects using non printable materials.

For instance, if I 3D Scan a cup I get an OBJ / STL model ready to work with. But I would like to make a mold of it. Does blender have any resource to "invert" the solid? Then I woul print the mold and pour the material inside this "bucket" of mold.

Thank you.
Best,
Rick

Using a boolean modifier to substract one object from another:

The original object.

Add a cube that intersects your original object (this will become your mold).

On the cube apply a boolean modifier, choose difference and select the original object.

hide the original object (delete it or move it to another layer)

once you are happy with the results you can choose to apply the modifier.

EDIT: there is also a add on that removes the step of using a modifier. Download. It has it's own tab. Just follow the steps above but instead of using a Boolean modifier use the 'direct' section in the 'booltool' tab, which is on the right side of the 3D view


Modify multiple objects at the same time (f.ex.: 8) I'm still pretty new to blender but I was wondering if there was a function in Blender to  make the exact same changes to 8 or more objects which are on different positions later on.

For example. You have a room with 12 Pillars and you want to apply the same changes to those objects. How would one do this without making changes to one pillar and then have to copy paste the pillars to that exact same location over and over for each change.

Thank you in advance for any help or nodge into the right direction. I can give you picture to show my situation later if needed.

Objects can have the same object data.

It introduces some constraints. Like if you what to have different materials for those objects, the materials should be linked to the object, not to the object data.


how to use a texture on each side of the same face I have walls of paper, for this model, I want to know if you can use different textures in the same lane, for example using a brick texture on the outside of the face, and a white texture on the inside of it face ???

Same as above but using Blender Render - it has to use nodes, there isn't a way without it. By using the Geometry node, I plug the Front/Back input to the Factor of the color mix node that is sent to the material color node. At this stage, you can then plug your image textures into the two colors of the color mix node, and indicate the UV Map name there in the Geometry node.


Pressed something and outliner expands all recursively. How to revert? I was going to rename an object by double clicking the name in my Outliner and accidentally pressed some keyboard combination. I don't know how many keys I pressed but they are all around the Enter key and now everything is expanded recursively.

I can click the minus sign on the outermost hierarchy to close them but inside them would be still expanded if I want to look inside again. I would like to know this key combination that expand all/collapse all so I can undo this. Doing it manually is not feasible because I organized the project by parenting. There are so many children.

The easiest way to fix this is to close one level at a time by pressing Numpad - repeatedly until all levels are collapsed.


animate pixels (time series) of a raster I am new to blender and here for a very specific task. I have a fixed geographic area defined by tif image (geotiff). Each pixel of this image has a height value. I have 100 such images of the same area, but value of pixel varies.

Case 1: Following a tutorial as here (Raster extrusion ) I am able to extrude pixel height for each image.

Now, I would like to add all these images as a sequence with increasing and decreasing heights. And make an animation to export to fbx animation.

Case 2: The second option i thought of is: I would like to animate these pixies based on the values they hold. For example I just keep one image, and for each pixel of this image be able to read a time series data file at different time frames. That is, imagine a text file having pixel ID, pixel height. So timeframe one is value v1, timeframe two is value v2..... till value v100. So the extrusion of pixel value varies on this sequence of values coming from a text file.

I feel the second case will look more elegant because then blender can interpolate pixel extrusion values between these timeframes. And again, I would like to export it as fbx animation that can be imported to unity.

Any guidance will be great help :)

You can use your images as an image sequence in Blender.

If the names of the images files are like this :

You can setup this image sequence for the displacement modifier (like in the tutorial of your question).

Simply, use these parameters in the texture panel :

1 : indicate here the first image
2 : set the image sequence option
3 : indicate the number of frames you need

Now to animate you can or use Alt + A (Esc to stop), or open a timeline view and move it manually.

Note : your second approach let think about "shape keys", but a shape key only allows to interpolate between 2 shapes of the mesh and not through the several steps you need (or there is something I don't know).


How does one go about to achieve this "broken up" effect? Was wondering how to achieve this "broken up" effect on models? I have tried to figure it out with the displace modifier but couldn't get very far.

Under "Edit" in the upper left corner, go to preferences. Then go to add-ons and search for "cell fracture." Once you enable this add-on, the options to apply this effect will be under "Object" in the "Quick Effects" section.


How to create a rotation animation with "Manipulate Centre Points" turned on? I'm trying to create an animation of an object rotating around a center point. By setting the 3D cursor a distance from the object, turning "Manipulate Centre Points" on and rotating freely, the rotation works just as a I want. For example:

The problem I'm having is when I try to animate this. When I rotate the object and try to set a "rotation" key frame, the rotation doesn't work. I think this is because "Manipulate Centre Points" does not actually change the rotation, only the location:

I've managed to create a work-around by rotating the object small amounts, then  creating "location" keyframes for each step. But this an approximation of the rotation, because the object is actually moving in a straight line between keyframes rather than in a true circle. Is there a better/easier way to do this?

Edit: Omar Ahmad, Xtremity & PGmath's answers below all work perfectly. PGMath has some animated GIFs in the answer, for which I clicked "accept".

You can do this by parenting the object to an empty and using rotation constraints.

First add an empty at the point you want the object to rotate around.  Then select the object and then the empty (in that order) and hit Ctrl+P to parent it to the empty.  Now you can animate the empty revolving around as desired.

Then select the object and go to the Constraints Properties panel and add a Limit Rotation constraint and enable the constraint on all three axes, leaving the Min and Max values at 0.


How to convert particles to mesh I need to convert a Particle System to a mesh object, so I can export it to Unity 3D. How could I do this?

The following assumes that you are using 'Particle System-> Render-> Object -> Dupli Object'.

Option 1) You can press the Convert button for the Particles Modifier.

Option 2) If you would like to keep the particle Emitter intact, you can use the 'Make Duplicates Real' Tool Shift+Ctrl+a.
This will create object particles at every particle position just as if you applied the Modifier but the particle emitter and its particle system will still be intact in case you would like to make further changes.


Grease pencil 2.8 render doesn't work with pixel filter? Hello I'm using the grease pencil to make some sprites for a video game but I found something very strange in this case. The pixel filter seems to not work in grease pencil objects.

I'm using the render eevee to have sharp edges on low resolution images.
I just have this quick scene the drawing is a grease pencil object the cube is a 3D object. Cube is the only thing that changes.

I just change the Film->Filter Size 0.02
This is my result. The Cube in violet looks pixelate that is my desired effect.

And this is what happens when I change the filter to 3.0 px

As you can see the grease pencil is invulnerable to filter changes in the render. I know that I can just render a bigger version of my image and then using another software I can decrease the size with a nearest neighbor filter. But that would be a problem because I will animate my character that will increase work time.

In case you are confusing on what I'm doing this is my scene.

Yes, those are for general settings. The grease pencil settings (on viewport) and (on render) that you want to play along with, are right here:


Automatic Forearm twist? I'm trying to setup a rig that allows IK/FK (via influence property), where the forearm twist joint automatically alleviates part of the twist of the hand. Not necessarily as part of the IK - just something that makes the wrist help the hand twist, automatically.

So I have this setup:

Shoulder -> Elbow -> Wrist -> Hand
..where Elbow & Wrist are the same forearm bone, with a single twist rotation in between them.

So when the hand twists along its length axis (for either FK or IK), I would like to make the wrist automatically twist along that same axis. I would be fine if the wrist assumes 100% of that rotation, but would rather be able to customize the amount it rotates.

Has anyone setup something like this? Or do you typically just manually alleviate the twisting of the wrist by adjusting the bones on each frame of animation?

My character will be exported for the Unreal engine, so I am limited in the types of bones and solutions I can use. I'm pretty sure bendy bones won't work for me. I've tried simply adding a driver to the wrist bone to make it assume some of the rotation of the hand in the appropriate axis. But I also have the IK constraint applied to that same (wrist) bone, which apparently causes very bad transform issues. The mesh ends up stretching and exploding in that area.

I'm trying to find a solution and will post it on here if I do before anyone can help.

Thanks!

I found the solution I was looking for. The trick is to not use the same bones for twisting and IK. Use one set of bones for twisting, and another set for IK.

Setup a rig similar to what I intially mentioned (two forearm bones for twisting)
Add a new "parent forearm" bone that will serve for IK (or manual posing) purposes, parented by the upper arm or shoulder bone. It will run from the elbow, all the way to the hand. Set this bone to not deform. For IK, this bone serves as the primary forearm. For FK, it serves as a handle, basically. A container - so you don't have to manually pose both twist bones. If you export for game engines, you won't need to include this bone.
Setup both twist forearm bones as children to the parent forearm. These should be full deforming bones with weights or whatever.
Set the hand bone as a child of the parent forearm, inheriting full rotations.
Add the IK constraint to the parent forearm bone. You will need some other bone as the target for the chain.
Add a copy rotation of local Y to the twist forearm bone closest to the hand. If you use more than one twist bone, you will need to add this to the others as well.

I think that's it. Let me know if I missed something. I found this video, which helped tremendously: https://www.youtube.com/watch?v=Vm7ST03SW8Y ..I honestly don't like the way he set up his vertex weights, and don't think its necessary to use more than one joint for forearm twisting, but otherwise, the setup seems solid and achieved exactly what I needed. Hope this helps someone looking to do the same thing.


Add-On Dev: Button that simply calls a Function? I apologize for the volume of questions. I tried searching for this, but came up with nothing related.

When building an operator window (or panel for that matter), is there any way to setup a simple button -> function relationship? Say, for example, if I had 6 buttons that I wanted to have call 6 separate functions?

If this is not possible, would there be a clever way to create a single operator class that allows its caller to specify a custom function to call when it is executed? Something like this?

op = layout.operator( "wm.function_caller", text="Write Data")
op.function = self.WriteData

I hadn't considered this until writing this question, so I think I will go try some variations on this. If it works, the down-side would be the inability to specify a custom description tool-tip for the buttons, right?

Thanks - any advice is appreciated.

Edit: Just wanted to provide a simple example of where something like this might make sense. If you define an operator window that allows the user to manipulate multiple sets of the same data, you may provide buttons at the top of it to "add" a set, to "subtract" a set, to "move forward" a set in order, to "move back" a set in order, etc. I find it strange that Blender provides a simple callback mechanism for data changes, but doesn't provide one for buttons.

The following example shows how to create multiple operators each with their specific function. It only shows three buttons, but the concept remains the same for an arbitrary number of buttons and their underlying operators. The panel is created in the sidebar of the 3D View which can be opened with N.

I hope I haven't misunderstood what you're trying to accomplish. In case I did, feel free to leave a comment.

bl_info = {
    "name": "Multiple operator example",
    "author": "Robert Guetzkow",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > Sidebar > My own addon",
    "description": "Example with multiple operators",
    "warning": "",
    "wiki_url": "",
    "category": "3D View"}

import bpy

class EXAMPLE_OT_func_1(bpy.types.Operator):
    bl_idname = "example.func_1"
    bl_label = "Function 1"

    def execute(self, context):
        # Implement your first function here
        self.report({'INFO'}, f"This is {self.bl_idname}")
        return {'FINISHED'}

class EXAMPLE_OT_func_2(bpy.types.Operator):
    bl_idname = "example.func_2"
    bl_label = "Function 2"

    def execute(self, context):
        # Implement your second function here
        self.report({'INFO'}, f"This is {self.bl_idname}")
        return {'FINISHED'}

class EXAMPLE_OT_func_3(bpy.types.Operator):
    bl_idname = "example.func_3"
    bl_label = "Function 3"

    def execute(self, context):
        # Implement your third function here
        self.report({'INFO'}, f"This is {self.bl_idname}")
        return {'FINISHED'}

class EXAMPLE_PT_panel(bpy.types.Panel):
    bl_label = "My own addon"
    bl_category = "Name of your tab"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    def draw(self, context):
        layout = self.layout
        layout.operator(EXAMPLE_OT_func_1.bl_idname)
        layout.operator(EXAMPLE_OT_func_2.bl_idname)
        layout.operator(EXAMPLE_OT_func_3.bl_idname)

classes = (EXAMPLE_OT_func_1, EXAMPLE_OT_func_2, EXAMPLE_OT_func_3, EXAMPLE_PT_panel)

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

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()


Deleting voxel artifacts (averaging small geometry) I need help. There is such a mesh. Obtained by importing the *.obj file from the fractal generator into Blender. The fractal generator creates this mesh using voxels. In this case, all sharp edges are obtained with this kind of "voxel noise" - sharp peaks, notches, zigzags, holes and other artifacts. This is similar to what we see in Photoshop when we look at the sharp edge of an object in an image when zoomed in greatly. The challenge is to rebuild this mesh so that the large and medium shapes are preserved, but these edge artifacts are gone. Is it possible? It seems that the most logical way would be some smoother, which would completely destroy all small geometry, averaging the position of the verticles. That would suit me. However, the modifiers that I tried (remesh, decimate, all 3 smoothers) do not give satisfactory results — they do not destroy small details, or if they do, then almost nothing remains of the original shape. And I would like, if possible, to do this without manual selection of verticles in artifacts regions, since in some cases the shape can be quite complex. Do you have any suggestions?

Not an answer ...

v01_Vertex Group
I wanted to isolate mess on edge by curvature with Pointiness node (only for Cycles), Bake ...

... and use this texture for VertexWeightProximity modifier to convert into vertex group to be used as mask for Smooth modifier.

v02_Sculpt Mask
Similar technique can be achieve by Sculpt mode. Expand by Curvature didn't work for this, but in the same menu is Dirty Mask that worked. So probably easier way to isolate ...

Smoothing
... but even separation was successful, using Smooth modifier (for vertex group) or Smooth Filter (for sculpt mask), it failed at the end for the same reason ... topology is too bad to get rid of those things.
Even I tried Remesh > Blocks to get even distribution without small artefacts and than Smooth modifier (or any of a smooth modifier).
Sorry
So, probably only one advice I how - try Meshlab app that is announcing nice optimisation features specifically for thouse issues. But I don't have an experience to navigate you more.


Grid/ smart fill but with only 3 "rails" I have an outline that has 3 curved "segments". Actually it's all connected edges. I want to fill them with a grid that has one "pole", so it's like of 1/8 sphere but irregular.
SketchUp has a plugin called Curviloft which is very smart and handles grids like this one. It can also do stuff like Blender Grid Fill tool. I want to achieve the same result in Blender but Grid Fill tool does not help.
I know there are addons like Smart Fill and Curve to Mesh. I haven't tried them yet. Perhaps this is the way, but they are both paid, so I want to ask first.
Would you have any suggestions for me?
Thank you

Blend file:

You can have something close to what you want with a bit of tweaking with the CtrlE > Bridge Edge Tool:
Select the vertices on the 2 sides, don't select the top one:

Bridge, tweak the parameters on the Operator box so that it looks the way you want:

Give some corrections on the bottom and top:


pinning flag to pole: do I need an Empty? This I fear counts as a Stupid Question (and there are indeed such things) but... I have placed a Cloth object (vertical subdivided plane, Cloth physics) up against a pole (tall skinny cylinder, rigid body, non-dynamic) and then pinned the cloth by the row of vertices adjacent to the pole.  I then selected cloth, then pole, then (Physics tools) Connect, Fixed.  What I expected:  the cloth would be glued to the pole at their relative positions as of Frame 1, attached at its pins, but would flutter freely.  What really happened:  The cloth flutters freely... while slowly sliding down the pole!

Reading some hints and tutorials I see that many recommend parenting the cloth to an Empty and the Empty to a solid object -- pole, whatever.  Is this indeed SOP?  Is a cloth incapable of participating in a RB physics Connection so that there must be an intermediary Parent relationship with a third object?

Also, I thought I had seen demos in which a Cloth object was simply pinned in mid-air by its own vertices, with no other object to constrain it... more experimentation needed...

AOQ:  yes, I can pin the flag in midair.  For some reason on my first attempt, I didn't create the vertex group I thought I had created.  On the 2nd attempt -- I would swear I went through the same steps each time, but there it is -- the vertex group was correctly created and works as a pin, and everything is dandy.

If the flagpole moved, and I wanted the flag to follow it, would the best practise then be to use an Empty between the moving pole and the flapping cloth?


How can I stop Blender from selecting vertices on backfaces? I only want to be able to select vertices that are on faces facing me, but I frequently select vertices that are on the other side of the mesh. It's a bit annoying as far as workflow. I know about the limit selection to visible button, but that's not what I'm referring to. Is there a solution?

Here is an example. Though even when the mesh is closed, blender will snap onto vertices from the other side.

The closest thing would be to select one vertex of a backface and select similar vertices Shift-G Normal adjust the threshold in the last operator panel (Left to the viewport if not visible toggle with T)

and hide the selection H, after editing unhide Alt-H.

Note: Hiding backfaces would only prevent Blender from filling them, all vertices,edges will still be selectable in Edit Mode: