Here's a quick example adapted from the ObjectCursorArray tutorial in the API documentation.

You should be able to run this in the text editor, and then pressing Numpad 0 in Object view should result in the "do work here" text printing to the console window (in OSX/Linux you have to launch Blender from the terminal to see the console output).

Note: once you copy this script into blender, you may want to check that the tab structure is still correct for each line.

bl_info = {
    "name": "Work Macro",
    "category": "Object",
}

import bpy

class WorkMacro(bpy.types.Operator):
    """Work Macro"""
    bl_idname = "object.work_macro"
    bl_label = "Work Macro"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):

        print("do work here")

        return {'FINISHED'}

# store keymaps here to access after registration
addon_keymaps = []

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

    # handle the keymap
    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    kmi = km.keymap_items.new(WorkMacro.bl_idname, 'NUMPAD_0', 'PRESS', ctrl=False, shift=False)
    addon_keymaps.append(km)

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

    # handle the keymap
    wm = bpy.context.window_manager
    for km in addon_keymaps:
        wm.keyconfigs.addon.keymaps.remove(km)
    # clear the list
    del addon_keymaps[:]

if __name__ == "__main__":
    register()


Triangle to Quad produces disconnected triangles

From that exact view (all those exact faces selected):

Hit X, then faces to delete the mess you have.
In edge mode,Alt+Right Click an edge, to select the loop around the hole.
Hit F to fill with an ngon.
Then hit Ctrl+T to Triangulate.
Then hit Alt+J to do a Triangle to Quad

EDIT:

Mr Zak's suggestion to use Grid Fill greatly improves this answer by reducing the last three steps to just one:

Hit X, then faces to delete the mess you have.
In edge mode,Alt+Right Click an edge, to select the loop around the hole.
Hit Ctrl+F then Grid Fill


Is it possible to set Blender Selection Mode to left click selection via Python?

The full path to the current user preference is

bpy.context.user_preferences.inputs.select_mouse = 'LEFT'


In Blender choose Quicktime in the output section of the Render pane. Then you can click on "Codec" for a dropdown menu with a list of options.


Help modelling silicone baby fork (lumpy surfaces, lose of details, adjusting measurements of pins)

You should keep it low-poly as long as you're not glad with the general shape, then give it a Subdivision Surface modifier, and only apply the modifier when everything's ok (but always keep a low-poly version).
I would stick to the shape from top view. Make sure that the edges follow the shape so that it will be easy to add edge loops further on:

Use the Proportional Editing option to curve the spoon (hide the part that you don't want to deform):

Then extrude up:

Move down the outer edges:

Then add a Subdivision Surface modifier, add edge loops or bevels to sharp some angles, etc...


GPu Usage on RTX 2080 TI 20% CPU 10% during Render Optix

Windows Task Manager does not report GPU usage very well (known problem). If you switch one of the graphs to CUDA, you'll notice it will report full usage for that graph. Third-party GPU monitoring software such as GPU-Z will correctly report GPU usage.


I've encountered this issue myself, I'm not sure if it's Blender or the FBX format, there are things you can do to help mitigate the problem by adjusting the "Sampling Rate" value or "Simplify" value, there are also settings in Unity that may help as well try changing the Keyframe Compression to "Optimal" or "Off" in the Inspector tab. Other than this I haven't found any other solutions myself.


Particles fail when using Animation Nodes?

You can bake object transformation into keyframes using Set Keyframes node. It should work.
If you don't want to bake animation then try this method:
Step 1: Create empty objects using Object Instancer and do whatever animations you want to those empty objects.
Step 2: Create instances of actual object having particles using Object Instancer. Then unlink it from node. You can do that by pressing Unlink Instances From Node. which can be found on advanced settings of Object Instancer node. Then move those objects into another collection.

Step 3. Get objects from collection using Collection Info node. Then set empties as parent for these objects using Attribute Output node.


Why does my displacement map have jaggies

First in first, EEVEE is not ready for fully support of displacement in 2.81 and below.

The node connect to displacement socket will become bump only solution. And there doesn't exist the displacement setting block inside the material panel with EEVEE. When you switch back to cycle, you can choose the type of displacement.

Using cubic interpolation might get the best result in cycles

Once upon user zoom-in into a ridiculous close place to look into mesh, linear method will become pixelated for some reason(smart will adapt linear in scaling up). But cubic retain smooth detail.

There might be some case that I don't know, so you should try it yourself to test what cause the situation.

Oh, and 2049x2049 might be the worst case that a map can be use in computer graphic. Try to let the map resolution in exponential of 2. e.g. 2048


How can I set the maximum draw type for multiple objects?

Just right click on the "maximum draw type" list and choose the "copy to selected" option:

Note: this function is available in many contexts (not all).

Additional information:

As said Duarte Farrajota Ramos in the comments, you can use the Alt key whilst clicking on/choosing the wanted 'maximum draw type'. And that will apply it to all selected objects without using the menu indicated above.

But this Alt key won't work here if you have the 'Emulate 3 Buttons Mouse' in the user preferences (which allows to use the alt key to replace the middle button features, if you are using a track pad for instance).


How to Fix Weird Crease in Character Model

Some vertices of your mesh are going over the Y axis. Just a bit, but enough to cause a crease.

Select your whole edge
Scale it to 0 along the X axis (so it's flat)
Move it precisely to the Y axis.

(This is the fast solution, you can of course move the vertices one by one.)


This might sound like a non-answer, but you hit the nail on the head with your last sentence in my experience. I can think of a few ways to do something like what you want, but they all require more effort than g, z, [some integer], then repeating on x and y.


Math logic between camera angle and lens

The angle of view for a rectilinear projection camera is calculated by:

$$a=2\arctan{\frac{d}{2f}}$$

$a$: angle of view
$d$: dimension of the sensor (horizontal or vertical)
$f$: effective focal length

horizontal and vertical angle of view differ if your camera sensor is not a perfect square.


How to cut a spherical hole in a dome properly

You could create 2 UV Spheres, the big with one 16 segments and 8 rings, the small with 12 segments and 6 rings, rotate a bit the small one:

Use the Boolean modifier or the Boolean tool so that the 2 spheres merge, give it a nice topology (use join, dissolve vertices, knife tool):

I seems to work:


Why is the texture not appearing on the model

Imho you could benefit doing some more research (ie: https://www.blender.org/manual/) before posting that nothing works...

solid mode:

textured mode:


Isn't the function PURGE ALL intended to purge all the unused assets in a scene?

I know this happens... it's not fun.
If you switch your outliner window from View Layer to Blender File, you can look at the stuff in your file and right click and delete anything unneeded.

As you've noted it's usually images that need removing.
Technically, once unused they should be purged from your file by virtue of not being saved in the first place because they don't have any users.  I'm not sure what is marking these as used, honestly.  My suspicion is opening an image in a UV editor or something.


Can I extrud multiple faces according to weight of a vertex group

Yes, with the displace modifier. First paint your weight, then add the displace modifier and set it up with you vertex group, then play around with midlevel or strength to get desired result.


Image applied as a UV texture is deformed

I think that for what you are trying to do you need to set the right ortho view and unwrap using project from view (bounds):

Then set your material to actually use that newly created UV map as coordinates:

If you still have some deformation, use a subsurf modifier, but instead of the default Catmul-Clark subdivision use Simple


Changing the pivot point and using it to snap to grid

First go to the Edit mode of your Cube and select the vertex you want to snap the pivot to.

Then press ShiftS to open the Snap menu and select Cursor to Selected.  Now you will see the 3D Cursor appear at the vertex.

After that you have to quit the Edit Mode and go to the Object mode of the Cube, then press ShiftCtrlAltC to open Set Origin menu and choose Origin to 3D Cursor.

When thats been done, (still in object mode) press ShiftC  to make the 3D Cursor go back on the grid and while your Cube is selected press ShiftS and choose the second option Selection to Cursor.

Now this will snap your Cube on to the grid.


How can I run blender from the command line to export and import models

Apart from the info that this question already gives you, you need to figure out the operators to call from the Python script.

Enable Python Tooltips (User Preferences -> Interface -> Display), then go to the import action in the File menu. Rather than clicking on it, hover your mouse over the menu item and inspect the tooltip. That'll tell you which operator to use. Do the same for the export, and you should have the information you need to build up your Python script.

You can get more help from the Python console (in the Scripting layout), by just typing the name of the operator. For example, >>> bpy.ops.import_scene.obj will give you:

# Load a Wavefront OBJ File
bpy.ops.import_scene.obj(filepath="", filter_glob="*.obj;*.mtl", use_ngons=True,
use_edges=True, use_smooth_groups=True, use_split_objects=True, use_split_groups=True,
use_groups_as_vgroups=False, use_image_search=True, split_mode='ON',
global_clamp_size=0, axis_forward='-Z', axis_up='Y')

This tells you which options there are, and what the defaults are.


How to make duplicated object be colored independently?

You will need to add a new material (you duplicated the object but you didn't make a different material).

Click the number next to the material name to make a single user copy.


If by save the texture you mean bake the texture then make sure your render engine is set to Cycles.
UV unwrap your object so the texture maps onto it correctly when you bake it. I suggest that you do not have any overlapping islands.
Then you should be able to press bake with it set to diffuse.
Although, it seems that you have a diffuse shader set to a yellow color with it mixed with a glossy shader and if you want to bake the reflections into the texture that would be different.


Speeding up scaling about the true center with a mirror modifier

Here's a quick little addon which streamlines the process outlined by your link:

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####

bl_info = {
    "name": "Snap Macro",
    "author": "Me",
    "version": (0, 0, 1),
    "blender": (2, 78, 0),
    "location": "View3D > Snap (Shift S)",
    "warning": "",
    "description": "Snaps Cursor to Selection, Sans Axis of Symmetry",
    "wiki_url": "http://i.imgur.com/j1N3Wqz.jpg",
    "category": "View3D",
}

import bpy
axSym = [
    ("0", "X", ""),
    ("1", "Y", ""),
    ("2", "Z", "")
    ]

def snapMacro(self, context):
    bpy.ops.wm.context_set_enum(data_path="space_data.pivot_point", value = "CURSOR")
    bpy.ops.view3d.snap_cursor_to_selected()
    context.space_data.cursor_location[int(self.sAxis)] = 0

class snap_macro(bpy.types.Operator):
    """Macro snaps cursor to selection and zeroes X-Axis"""
    bl_idname = 'view3d.snap_macro'
    bl_label = 'Snap Macro'
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):

        return context

    sAxis = bpy.props.EnumProperty(items = axSym, name = "Axis of Symmetry", default = "0")

    def execute(self, context):
        snapMacro(self, context)
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(snap_macro.bl_idname, text="Snap Macro")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.VIEW3D_MT_snap.append(menu_func)
    bpy.types.WindowManager.sAxis = snap_macro.sAxis

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.VIEW3D_MT_snap.remove(menu_func)
    bpy.types.WindowManager.sAxis

if __name__ == "__main__":
    register()

Put this .py file into your User\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\ directory, or equivelent, depending on OS. Enable in user preferences (searching 'snap' brings it to the top of the list) and save user settings.

What it does:

Adds a macro to the snap menu Shift S
Snaps cursor to selected, with the exception of the axis of symmetry. X is default
Sets pivot point to cursor, since you'll always want to do that
Gives basic operator panel support, allows retroactive change of axis, remembers last axis setting


Any simple way to merge two cube objects together?

two options - first, try turning on AutoMerge Editing option in the 3d viewport header in Edit mode so that vertices moved into the same position get merged. Might be able to just to press G to grab without moving, confirm action with LMB, and get the vertices to merge if Removing Doubles is not merging good enough when increasing the threshold in the Last Operator panel (press F6 to open after operator execution).

Second way can be to use the Array Modifier to model with Merge checkbox in modifier's options enabled, and then apply the modifier in Object mode.


First off there is no reason to be adding a cube up there to fill in the roof, you could simply do that (in edit mode) by adding a loop cut (CtrlR then right click or Esc to cancel the movement so the new loop jumps to the center) in the base cube then moving the new edge up to meet the peak of the roof.

If you did want a separate cube for the top and bottom of your house, you still do not need the knife tool. First scale up the cube to match the size of the bottom cube and bottom of the roof. Then simply select the top four vertices of that cube and use the two most basic modeling tools G Grab to move, and S Scale to change the size, to position it to match your roof.
I have an animated gif below.

For the "super thin" roof, you could add a Solidify modifier Planes are two dimensional, so by definition that will be super thin. You need to add geometry (by modeling or modifiers) to create that third dimension.


Is there a way to join two strips in VSE?

For strip split by Cut K - Erase X second part of strip and extend the end point manually or by Snap to Playhead Shift+S

For strip split by Hold Cut Shift+K go to properties panel N and change Hold Offset End to zero (or what ever number that fits to a gap).


Do you have any screenshots. - it might just be that you're really confused, when adding a bone, you add a bone to the center of the cursor, you then move it to where you want it to be, and you then parent the bones and the mesh together.

from your description it sounds right.


Can't update / remove keyframe values from an imported Collada file

The problem seemed to be that the imported collada file had multiple sets of clones of the same keyframes - 5 in my case. I'm not sure if this is a problem with the current collada import script or just with certain files, but I managed to fix the file by deleting all but the last set of cloned keyframes for each bone via the dopesheet. Once this was done I could successfully change the Quaternion channels and keyframe them as per normal. The imported animation is preserved and now editable.


Apply button is greyed out in subdivision modifier how to fixe this?

I managed to solve the issue by selecting the object on which I have to apply sub div modifier, then I "make the single user object and data".

The problem was that I had created a Duplicated Linked object Alt + D instead of a Duplicate Object Shift + D.
For those who does not know the difference between Duplicated Linked Object Alt + D and Duplicate Object Shift D below is the explanation:

The  duplicate linked  Alt +D works as an instance. Meaning it creates the instance copy of the original model, and if I make changes on one model it will affect both.

The duplicate object Shift + D makes a complete separate copy of the object. Meaning that any changes to it will not affect the original model, as it is a completely as separate object.


How can I export every frame vertex animation data?

you can use for-loop to export every frame positions:
import bpy

sce = bpy.context.scene
f = open("props.txt", "w")
for frame in range(sce.frame_start, sce.frame_end+1):
    sce.frame_set(frame)

    me = bpy.context.object.data
    print("Frame %i" % frame, file=f)
    for v in me.vertices:
     print(v.co.xyz, file=f)

f.close()


1.0 Materials with emission shaders can be configured to use Multiple Importance Sampling (Material Settings). This means that they will get rays sent directly towards them, rather than ending up there based on rays randomly bouncing around. For very bright mesh light sources, this can reduce noise significantly. Materials settings ==>:

1.1. Multiple Importance Sample- enabling this will sample the background texture such that lighter parts are favored, creating an importance map. It will produce less noise in the render in trade of artifacts (fireflies). It is almost always a good idea to enable this when using an image texture to light the scene, otherwise noise can take a very long time to converge ==> World Settings:

Also important is to use shader colors that do not have components of value 1.0 or values near that; try to keep the maximum value to 0.8 or less and make your lights brighter.
Caustics are a well-known source of noise, causing fireflies,  There is a "No Caustics" option to disable glossy behind a diffuse reflection entirely(Properties -> Render -> Light Paths -> Caustics)


If anyone is still looking for a simple way to do this without going full animation nodes, I've updated the typewriter addon and fixed the invisible text when render bug. Currently tested and working on 2.83.


Can't make circle of objects using array modifier

Rather than using the empty as an offset on the array modifier, add a bezier circle the size of the circle you want and a curve modifier to the cylinder.  Select fit to curve and tweak the x offset until they fit.


In order to get realistic Depth of Field a 2d Depth Map is always required:

I'd recommend duplicating the scene, enable the 'Z pass' (Scene > Passes) and rerender the scene via Material Override. Use a simple material, set the Samples to 1 and follow the instructions of this answers: How can I get a Depth of field render pass?


Mulitple point density clouds - intersecting each other

I think you can solve this by using either one of 2 workarounds.

Scaling clouds domain by Z axis

This is kind of lazy solution, which assumes scaling domain cube of the fluffy clouds (those everywhere in the bottom). After domain is no longer intersecting with clouds in the foreground (left / right), there's no intersection.

Processing rendered OpenEXR images

Start with moving fluffy clouds (those in the bottom) with their domain to separate layer (assuming light sources are on a layer turned on in any case). Set up output format as OpenEXR Multilayer.
Render and save image. Do the same with big clouds on the left and right (so that they were moved together to the same layer).
Having 2 .exr images, you can import them in another scene, delete RenderLayers node to render only from compositor and mix clouds with AlphaOver node (make sure Channels of the image to draw is set to Color and Alhpa).

Rendered clouds (with and without black layer added for transparency demonstration):

The result is the same for both solutions


I am sorry. I just found a tutorial about it.
Just add a keyframe on parameter (RMB->insert keyframe).
Documentation is not that clear.


In my example the bigger cylinder is parent of the small one,and it's rotated 45 degrees on its Y axis. The small one has X and Y loc locked, so it can only slide on its Z local location. The same can be achieved with bones, locking their local attributes.


The simplest way is to use a box-mapped scratch texture to control the roughness of a glossy shader:


Cycles sky : Sun disc appears only in reflections

Lamps in Blender Render
In Blender Render you can turn Halo on, and the light will be visible to the camera.

Lamps in Cycles Render
You can't see lamps if you are using Cycles Render. That's one of their defining qualities. Here is a quote from the Blender wiki:

"Next to lighting from the background and any object with an emission shader, lamps are another way to add light into the scene. The difference is that they are not directly visible in the rendered image, and can be more easily managed as objects of their own type."
(Source: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Lamps)

So, if you need a visible light source in Cycles, use either mesh lights (i.e. meshes with an emissive material) or for example an HDRI with a studio lighting setup.

New Experimental Cycles Volume Scatter Feature
The only other way you can see the light source in Cycles is with the new Volume Scatter:  http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Materials/Volume

Just to give credit where credit is due, all the information I've listed here I have gotten from the Blender Developers and members of BlenderArtists.org, which also is a great knowledge base for everything Blender-related. Here's the question I asked about lamps:
http://blenderartists.org/forum/showthread.php?331453-How-can-I-see-a-lamp-in-a-scene&p=2607054#post2607054


Imported OBJ file with transparent texture has black background

Edit : So my answer only answers partially to your problem, whoever knows a bit better about Obj and Mtl imports will hopefully give you a better answer.
I don't know how to work without nodes, so I show you the problem and the solution with the nodes:

You want your arrow to show up on your object on a red background, here is the current node organization:

This node organization doesn't allow you to show any background, so it shows only black where there's the alpha transparency. The red you see in Solid mode is actually the color you've picked as Viewport Display color:

To create a red background, you have several solutions, you can plug your Image Texure into a MixRGB, choose a red color in the second socket, and plug the Image Texture alpha output into the factor of the MixRGB:


The split faces subdivided look a lot like what a quad would if subdivided. Thus as @Rekov already mentioned, you should be fine after doing the following:

Deactivate the Subdivision Surface Modifier (faster depending on the model)
Go in Edit Mode
Select all elements of the object with A, either mode, vertices, edges or faces will work
Press Alt+M and select "Merge by Distance"
Go in Object Mode and if you did not do yet, RMB Shade Smooth
Activate the Subdivision Surface Modifier again
Smile

Happy blending.


The fix Duarte Farrajota Ramos suggested worked. Attaching screenshot of settings for reference. It was not an issue with the Cutaway shader add-on, but a matter of increasing the number of transparency bounces under the Light Paths subhead of Render settings.

Thank you!


How to rotate object around a global point using Blender's Python API?

Things to look at. 1) simple script

import bpy
import math

R = 10
start_pos = (R,0,0)

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

for frame_num in range(1,101):
    angle = 2*math.pi*frame_num/100.0
    x = R*math.cos( angle)
    y = R*math.sin( angle)
    z = 0
    bpy.context.scene.frame_set(frame_num)
    ob.location=(x,y,z)
    ob.keyframe_insert(data_path="location", index = -1)

2) place an empty at the point around which you wish to rotate, and make that parent --- see Olav3D's  https://www.youtube.com/watch?v=nmLjYSmaW48

3) understand Euler rotations and their limitations

4) For 'Rolls Royce' rotation --- study quaternions.


Which of Blender's bpy.props properties can store a Matrix?

If you choose MATRIX as subtype the property will return a mathutils.Matrix object on access. So you might define a utility function to set the attribute

import bpy
from mathutils import Matrix

def flatten(mat):
    dim = len(mat)
    return [mat[j][i] for i in range(dim)
                      for j in range(dim)]

bpy.types.Scene.matrix_property = bpy.props.FloatVectorProperty(
    name="Matrix",
    size=16,
    subtype="MATRIX")

mat = Matrix([[i + j for j in range(4)]
                     for i in range(0, 16, 4)])

scene = bpy.context.scene
scene.matrix_property = flatten(mat)

print(mat)
print(scene.matrix_property)


Crowd Scene: Generating many characters with random clothing objects

If you're great at scripting, one way might be to use the shape keys. If you instance the objects and randomize the shape keys for different body heights and shapes and randomize the texture indexes, that probably should do it. With shape keys you can completely do a seamless remodel, so it might be good to start with... for example long sleeve, long hair- then model all other changes into shape keys.

It can do a final scene check in the strange event that two bodies match by checking first if any two parameters are the same, then continuing the check until it is negative. Switching a parameter if all parameters match two objects.


Radial gradient to black from center of image in compositing

I used the following node setup in the compositor to solve the problem I was experiencing:

The general gist of what the nodes are doing is creating an ellispe with the "Ellipse Mask" node and shaping it as necessary with the width and height parameters.
Next, I feed the Mask output of the Ellipse Mask Node to the Invert node. When initially using the Ellipse Mask node, the colors were opposite of what I desired, so the Invert node solves that problem with no required configuration of the node.
I feed the Color of the Invert node to a Blur node, ensure the "Gaussian" method is selected from the drop down list, and configure the parameters until I am comfortable with the blur or feathering of the Ellipse mask used at the beginning.
I then feed the Image output of the Blur node to an Alpha Over node, combining it with the original image as well as black in order to "fade to black" and bing-bang-boom, why's your mother in your room?


When you import the .obj file, Blender will also import the associated .mtl file* by default as well which is usually the same name. The colors applied to the model will show in the viewport and to see the texture(s) (if any), enable texture shading with AltZ.

* This is the file that should be generated alongside the obj when it was created and will hold color data and paths to textures if any. Opening the obj file in a text editor should show this near the top.


Why I can't keyframe position of hips bone?

Place two keyframes on different frames for interpolation.


Solidify issue at sharp bifurcation location

You have two main issues.  The first is that you have a transition point which is joined by a single vertex.

That one vertex will cause you problems with several areas of Blender. Sculpting, Rendering and generative Modifiers to name a few.

There is no face at that center point and I imagine this is what's causing the Solidify Modifier to fail.

The other problem with this model is that the quads have all been converted to triangles and the loops are sort of spiraling around so un-triangulation is certain to fail because there are no loops with clearly defined axis.

Without quads that have well-defined loops, some important modeling tools will not work. So to start with we should try and avoid this as best as we can with the repairs to follow.

You can start by selecting all the vertices around the edges and use 'Make Face'f so there is a well defined face to start working with.  You can do this by using Alt+'Mouse-Select-Click' on one of the boundary edges.  In this case it will select both perimeter loops since they are attached but you can simply unselect the second loop to get started.  This will be easier to do in wireframe mode using the Circle-Select toolc and 'Menu-Select-Click'(this will un-select).

Now with the new face selected use 'Extrude'e to extend the edges out into some extra faces.  Repeat this for the other side, select both faces and use xthenf for 'Delete->Faces'.

Now you can also run 'Remove Doubles' from the 'Specials Menu'w to clear up some of the overlapping Vertices.

Once you've done that you can select some of the edges which are close together and double tap g to slide them over to nearby edges.  If you have 'AutoMerge Editing' activated, the overlapping vertices that result from this will be removed automatically without you having to repeatedly use 'Remove Doubles'.  Using these tools you should be able to clean up many of the rendering errors that are visible along the boundaries of the model.

That one vertex is still a problem but now it's only visible from the inside.

I was not able to repair this without Applying the Solidify Modifier.
The modifier is causing the vertices at the junction to be difficult(each of them has a 'virtual position' as well and this is causing some logical conflicts some of the mesh editing tools).  If you want to clean that area a little more then you should Apply the Modifier.

You should consider looking for an import option that can maintain quads, it will allow you to use a lot more of Blender mesh editing tools.

UPDATE:  After trying again, I was able to repair the inside areas without applying the modifier.  Using a combination of 'Join'j and 'Edges->Rotate Edge'Ctrl+e and sliding vertices with gg, the area can be fixed but it's a bit of a Rubik's Cube to solve.  When the Solidy Modifier causes one of the editing operations to go bonkers, use Undo and try adding or rotating a different edge.

I've posted a video to Vimeo that shows this in action https://vimeo.com/119991069


Resize 3D Objects in python without operator function

Simple vector maths.

The global location of any object is gl = ob.matrix_world.translation

The global location of the cursor is cl = scene.cursor.location

The vector that describes the distance and direction from object to cursor is the difference d = gl - cl

To move to a scaled location

ob.matrix_world.translation = cl + scale_factor * d

or similarly

import bpy

context = bpy.context
scene = context.scene
cursor_loc = scene.cursor.location

scale_factor = 1.1

for o in scene.objects:
    d = o.matrix_world.translation - cursor_loc
    o.matrix_world.translation += (scale_factor - 1) * d


Object visible in preview disappears when I render

Look at the camera icons on the outliner. When the camera icons are disabled, the object is disabled from rendering.
Click on the funnel icon on the top right and enable different filters.
The Eye icon determines visibility in the 3d viewport.
The Monitor icon disables the object in all viewports.
The Camera icon determines if the object is rendered or not.

https://docs.blender.org/manual/en/latest/editors/outliner/interface.html
For version 1.79 or older the controls are like this:


Issue Importing Obj Into Blender With Textures

In case someone wondered I just resolved my problem by writing some code:

import bpy

for obj in bpy.data.objects:
    if obj.active_material is not None:
        if obj.active_material.name.startswith('textures'):
            print(obj.active_material.name)
            mat = obj.active_material
            tex = 0
            if mat.texture_slots[0] is not None:
                continue
            try:
                tex = bpy.data.textures[mat.name]
            except KeyError:
                tex = bpy.data.textures.new(mat.name, 'IMAGE')
                try:
                    tex.image = bpy.data.images.load('path/to/assets/' + mat.name + '.jpg')
                except RuntimeError:
                    print(mat.name + ' not found')
                    continue
            slot = mat.texture_slots.add()
            slot.texture = tex


You can get there with UV projection.

Select all bricks and switch to Edit Mode
Get in front view (View > Viewpoint > Front)
Select all vertices and go UV > Project from view
Rearrange your UV map

Useful hack:
• Use a BW logo with black background
• Set the image to clip (so it doesn't repeat)
• Use MixRGB node to control the colors inside Blender


Consider pressing the different keys on your numeric keypad.
This will align your view to an axis in the set {XYZ}.

NumberPad 1
NumberPad 3
NumberPad 7 with/without the variation of
Ctrl

https://docs.blender.org/manual/en/dev/editors/3dview/navigate/align.html

Consider changing the

transformation orientation to

[Global]

as indicated by the yellow arrow.

Sometimes a rogue keystroke or click can change a setting unbeknownst to many.

If your 3D mesh above is not time consuming ... I would just consider archiving mesh file. Similar to a delete. Create a new file and start over.  You probably wont make the same mistake.  Starting over may be more cost effective than chasing down one little small problem and trying to remember your actions or describe it.


Find vertices in .obj File which were marked in Blender

I imagine you've decided against separating those vertices so you only export each part separately, i.e. two individual obj files?

(Delete the section(s) you don't want to include in the first obj file, export what's left, then reload the Blender file, delete the other section and export that for the second obj file.

When both are imported their scaling and relative positions should still match so it's easy to recombine/join them (CTL-J) when imported back into Blender)


At the bottom of the Header > Pivot Point dropdown, there's an 'Origins Only' option. If you check that, and choose the appropriate pivot about which to scale  (try 'Median'), you will be able to spread/bring together your objects without affecting their geometry.

That looks from your picture to be SZ, with no proportional editing.


Issue with Multiresolution sculpt: parts of the object cannot be sculpted

you should check 2 things:

Is there any "mask" applied (ALT + M to remove any mask applied)
you can sculpt only the selected mesh: if the lower part of the head is another mesh, you need to select it in object mode or join all the meshes so they are 1 single object


Volumetrics clip through objects, they always render in front of everything

This is due to how renderers process depth. Basically they squish all depth into a range between 0 and 1. With large ranges, rounding errors will create visual glitches like clipping. You may already be familiar with this in the viewport and cameras for the view range of geometry, but volumetrics also use this. I'm not sure why volumetrics are so much worse at this, but the way to fix it is by giving blender less information to cram in.
This means reducing the range where it renders volumetrics or increasing the number of samples. Both of these settings are in render > volumetrics.
Renderers bias toward objects closer to the camera so increasing the lower value is the best way to improve results. You might also be able to get results from the distribution slider which I think changes the bias on the renderer but I haven't been able to get anything out of it.
TLDR: Reduce the volumetric render range and increase samples.


Using Cycles renderer the reflections look good in viewport but not in in the render, why is this happening?

The issue is not the reflections, but the fact that they are blocked by something else. It looks like you have another object on top that is not visible in the 3d viewport but is renderable.
Those three big squares that are overlaid on the ground most likely belong to such object.
In the outliner search for objects that have been disabled for view (eye icon) but have the camera icon enabled. The camera icon determines if the object renders or not.


Why are my soft body objects doing this?[Blender 2.8]

Add SubSurf(Subdivision Surface) Modifier to your UV Sphere:
And increase the values of Render and Viewport. Also, make sure they are same or you'll get different results in the render.


How could a gap between array modifier created objects be closed?

Merge + First Last will not affect anything to the gap in your case. Because:
The reason that the first/last duplicate seem to be close is because of the Curve modifier, which affect AFTER the Array modifier.

You can try to first minimize the gap by adjusting in Array modifier, then go to the Edit mode of either the unit piece or the curve, S to scale, drag mouse while holding Shift to enable the very fine presision on scale, and zoom in the view, toggle Display modifier in Edit mode and Adjust edit cage to modifier result on all modifiers (the last two icons in every modifier panel). This would be helpful to see the result directly and simutaneously. Zoom in further, then scale again... repeat above steps (if necessary) until the gap is hardly noticed.

Example 1 (adjusting curve):

Example 2 (adjusting unit piece):

P.S.:

If you really want to perfectly remove that gap, you may have to apply all modifiers first, then go to Edit mode and remove doubles.
It is indeed possible to calculate exactly how much scaling is needed, but it will involve the math, and something about the relative position on pivots. I don't think it would be of much sense in most case.

[UPDATE]

Another way to get rid of the gap by Merge is using Object Offset feature:

Example 3 (using object offset):

About how to use it, I recommend to see this simple guide from CGCookie.com.


Why does my model become partially transparent when using the alpha channel to control transparency?

This is because the alpha channel is not completely opaque on the other parts:

The mix shader uses the top slot where the Factor input is 0, and the bottom slot where the Factor is 1. When the Factor is between 0 and 1, it will mix the two accordingly. See How does fac differ with manual control versus node control?

A quick fix you could do in this case is use a Math node with the operation set to Greater than to make the factor only have an input of 0 or 1, never a value in between:


OpenCL error when GPU rendering in Cycles

had exactly the same problem when I was trying to view (not even render) a scene with volumetrics in it.
My scene had: a sky environment texture and a default cube with principle volume shader puggled into volume output. Here's what worked for me:-

In anything but render view, switch to render with CPU.
Go into render view
Then in render view swithc to render with GPU.

I have no idea why this worked for me or if it will do you or anyone else any good. All I can say is I think the problem is with OpenCL, kinda wish I'd brought an Nvidia GPU now.


How to change weight of an object in BGE?

Heavier objects don't fall faster, so you shouldn't be changing the mass. instead decrease the damping factor ( which is like air resistance when falling ) and the object will go faster. also if there is a way to change the gravitational force effect on this object it would work if you increase it.


Noisy, risograph-style gradients and textures

Final:

Overview:

You can do this by firstly create Gradient based on chosen axis (Y in this example) and mix it with some noise (Voronoi > Noise). You can control base gradient driven by top Color Ramp and Noise distribution with bottom Color Ramp.


How to get location and rotation of light instances with python?

For global locations use matrix world
To make sure the global transform of light is as shown visually recommend using the matrix world.  Eg for default lamp global location and rotation
All the global transform info is available in the matrix.
>>> C.object
bpy.data.objects['Lamp']

>>> C.object.matrix_world
Matrix(((-0.29086464643478394, -0.7711008191108704, 0.5663931965827942, 4.076245307922363),
        (0.9551711678504944, -0.1998833566904068, 0.21839119493961334, 1.0054539442062378),
        (-0.05518905818462372, 0.6045247316360474, 0.7946722507476807, 5.903861999511719),
        (0.0, 0.0, 0.0, 1.0)))

>>> C.object.matrix_world.to_translation() # global location
Vector((4.076245307922363, 1.0054539442062378, 5.903861999511719))

>>> C.object.matrix_world.to_euler() # global rot in Eulers
Euler((0.6503280401229858, 0.055217113345861435, 1.8663908243179321), 'XYZ')

Remember all angles are in radians.
By using ob.matrix_world.copy() in code below it creates a "snapshot" of when script was run. If ob.matrix_world is used it is bound to the reference of the light and will change when transformed, an most likely crash blender if referenced after object is removed.
import bpy

def get_lights(col):
    assert(hasattr(col, "objects"))
    def to_dict(light):
        d = {}
        # add stuff already got
        d["matrix_world"] = light.matrix_world.copy()
        return d

    return [to_dict(o) for o in col.objects if o.type == 'LIGHT']

# test call
# lights in scene
print(get_lights(bpy.context.scene))
# lights in blend
print(get_lights(bpy.data))
# lights in active collection
print(get_lights(bpy.context.collection))


What is this weird thing when i'm trying to merge the head with the body on a sculpt and how do i fix it?

That weird thing is basically the second object you're boolean with overlapping the boolean result. When you use the boolean modifier on an object, this object becomes the result of the boolean operation. But the second object you use in that operation is still around in the scene, overlapping with the first. It's easiest to see if you turn on Random Color Shading:

Now you should be able to see the boolean result overlapped with the second one:

To fix this, you need to hide the boolean target. One way of doing this in an elegant fashion is to use Blender 2.80 collections:

Suzanne is the object that has the boolean on it. Sphere is the object I join with. I put the sphere under a new collection which I called HideMe. Now, I exclude it from the View Layer using the checkbox in front of the collection:

And as a result, the boolean object is not overlapping any longer:


import bpy

# Usage: Place the cursor over the strips you want to be selected and run the script.

# Define current frame and sequence strips

cur_frame = bpy.context.scene.frame_current
strips = bpy.context.scene.sequence_editor.sequences

# Loop over strips and find which overlap with the cursor

for strip in strips:
    if strip.frame_final_start < cur_frame and strip.frame_final_end > cur_frame:
        strip.select = True
    else:
        strip.select = False

Another (temporary, until the bug is fixed) solution is to paste this script in the Text editor and run it whenever you want to make selection based on the position of the cursor.


To add inputs and outputs to a group node press N to bring out the properties panel on the right (or use the plus sign on the top right of the node editor window).

Once the panel is open you'll be able to edit the interface for the node group. Adding inputs and outputs is done with the plus signs at the bottom.


Render object twice with different materials

You can use multiple scenes:

Add a new scene by pressing the + at the top of the screen and selecting Link Objects:

This will link the objects into a new scene. This way modifying an object will change it in both scenes.
In the new scene, select the refractive object and pres U> Object. Now the refractive object in the new scene is no longer linked to the refractive object in the old scene, but the object data is still linked.

This mostly means that changes to the object transforms will not be copied between scenes, but changes to object data like materials and UV maps etc. will.
Still in the new scene, set the material to be stored in the object, not the object data:

Since the object is local to each scene, by setting the material to be stored in the object, we can now set the material individually for both scenes.

Remove the refractive material and add the reflective material. I made the reflective material slightly transparent with mask transparency so that it doesn't completely replace the refractive image they are combined, but you can do this in compositing too.
Still in the new scene, set the alpha to Transparent in Render settings > Shading, so the the sky is rendered as transparent alpha:

You only need to do this for the new scene.
In the old scene, add some composite nodes to combine the results of both scenes:

It doesn't really matter which scene you put the composite nodes in, but I like to keep everything in the "base" or "bottom" scene on top of which everything is overlaid. Just remember to render from the scene with the composite nodes.
Render. Both scenes should automatically render and combine.

Example .blend


There's no need to include the mirror modifier in your setup, as the array modifier can do it all on its own. The important thing to note is that you want to use an 'Object Offset' and turn off 'Relative Offset'. You'll use the target object's rotation, which should be equal to 360/count. In this case, the empty was rotated 60 degrees, since the count is 6.

For some hands-on experimentation, have a look at the .blend


Download the archive version of 2.79b for your platform, which doesn't require installation.

Windows 64-bit
Windows 32-bit
Linux 64-bit
Linux 32-bit
macOS

Once extracted you should be able to run Blender 2.79b normally. Unlike the installer the archive doesn't give you a start menu entry or shortcut. You will need to create that shortcut yourself or start it directly from the directory the binary is in.


Black shadows on Faces, not a normals thing

This occurs because you have smooth shading applied to your model. To resolve this, ensure affected topologies are selected, go to the Tool Panel T goto 'Shading' section select 'Flat'.

You can also apply an 'Edge Split' modifier, found under the Modifier tab in Properties Panel. Split edges need to be marked, once selected, with Ctrl + E. Dragging the mouse up/down to define amount.

You may also add more Geometry to the mesh. Either manually with 'Edge Loops' Ctrl+R or by adding a 'Subdivision Surface' modifier, also found in the Modifier tab in Properties Panel.


How can I "un-merge" faces from a continuous mesh?

Select the face you want to disconnect from your mesh and press Y to Split the face.


What version of Blender to use with 10.14.6 Mojave

As of today (July 11, 2019), 10.14.6 is a beta OS version. Blender 2.79b runs fine on my iMac with 10.14.5. If you are a beta tester for 10.14.6, I would recommend submitting a bug report both to Apple and to the Blender team.


Compositor: make the glare node effect only certain objects

If you render those objects on a separate layer you can apply the glare just apply glare to that render layer.

E.g.


Animation not rendering through to the last frame using Eevee

Sounds to me like you are still rendering the image strip in the sequencer.
you can disable the sequence in the output options under post processing, then it should render the missing frames.


Can multiple meshes and textures share one material?

It is possible to give a bunch of objects the same material. If each is unwrapped that may complicate things. I think this may be what you are looking for

I hope this is what you were looking for


I would not worry about heath problems monitors might cause. They are quite safe. If you are worried about your eyesight, you should make breaks during work, let your eyes focus at things at different distances every now and then - it does not matter what monitor you have if you do not do this. I find it helpful to have a drink on my desk at work pretty much all the time - tea, juice, water, coffee - whatever you like. Fluids are good for you(well, maybe not coffee, and maybe not the ones with lots of sugar), you take your eyes off the screen every couple of minutes to take a sip and every hour or so take a walk to the toilet or to refill the drink. Works for me.

As far as color accuracy goes this gets really complicated. The prices range from something like 50€ to 5000€. It is also possible to get devices to calibrate and profile your monitors for around 200-250€, however if you are going to want to see the colors accurate in Blender, that makes absolutely no sense, since Blender does not support color management with ICC profiles that those devices produce so you can only see color tone calibration. Color profiling does not work with wide gamut or HDR displays well (see this confusing video) and color reproduction using FRC(Frame Rate Control) will most likely interfere with the process as well. So it does make sense to get a good quality display in the first place instead of trying to fix one that is not accurate to begin with and those may cost a fortune.

You may also wish to get a 4K display since it makes a huge difference when working with Blender. You get screen space equivalent to 4 HD monitors with it and Blender has a lot of stuff that you may want to have on screen without the need for switching layouts or panel types. Being able to browse the web or/and see reference images all the time while working is also really useful so I cannot recommend 4K enough. However with that resolution if you get a screen of regular size you may not experience the benefits of it since you would need to look at it from a very close distance, so it does make sense to get a bigger screen, even as big as 43"(I honestly find it the most comfortable size for 4K). With those sizes uniformity is likely to become an issue as well(in addition to color accuracy), so you have to look out for that and if you are thinking to try a cheep one that might not be such a good idea. So it is definitely worth to consider 4K monitors for work with Blender, however that adds a lot to the price.

As you can see there are many good reasons to spend a whole lot of money on a monitor for work with Blender and computer graphics, so I believe it will most likely come to your budget. If you can, get a huge 4K monitor recommended for work with accurate color that you can still afford. I believe one of the best options at the time I am writing is ColorEdge CG318-4K to answer your question, however I think you will want to consider some more affordable options.


can any body tell me how to make this complex object?

The image gives you quite a good blueprint and the first tip is to start with the big forms and then make the details.

Load the blueprint into blender and start modelling with a mirror modifier to model only half of it.

Start with a Torus and make the bulg on top with a uv sphere that you scaled in x and y to get the desired angle. Connect the two with a boolean -> Union and go on with the other parts in the same way.

For the extrusion part try to model it from the buleprint with single verts and then connect it with the torus to bevel the single verts for a smooth transition.


Dynamic paint - bake multiple displacement surfaces

Just ran into the exact same problem under the exact same circumstances. This happens because you didn't name the cache sequences, so baking one always overwrites the other. They need to be given unique names.


EDIT July 2018

If you are using Blender 2.8 or a recent build of 2.79, the math node now has the atan2 operation since this commit by Lukas Stockner.

This is in no way the most efficient way of doing it, but just a reminder that knowing a bit of math, you can painstakingly craft functions using NodeGroups.

Things to know:

The Maximum Math node acts as an OR boolean operation.
The Minimum Math node acts as an AND boolean operation.
The Substract Math node acts as a NOT boolean operation with 1 as first input and your value as second.
The Mix Colors node acts as a switch with a boolean as first input, which returns second input if condition == False, or third input if condition == True.

http://en.wikipedia.org/wiki/Atan2

http://en.wikipedia.org/wiki/De_Morgan%27s_law


How can I limit frame count by counting a text list?

You may use an Expression node. The two properties you want to edit a scene properties. You can know their path from their python tool-tip (Hover over the property). So the expression node can be as follows:


How do I add a list of paths in the Blender preferences manually?

You would have to declare a CollectionProperty and assign its type to a previously declared PropertyGroup to hold multiple generic entries. Demo based on the code provided in the docs:

bl_info = {
    "name": "Example Add-on Preferences",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "",
    "description": "Example Add-on",
    "warning": "",
    "doc_url": "",
    "tracker_url": "",
    "category": "Development",
}

import bpy
from bpy.types import Operator, AddonPreferences, PropertyGroup
from bpy.props import StringProperty, CollectionProperty

class CUSTOM_PG_filepaths(PropertyGroup):
    # name: bpy.props.StringProperty()
    path: bpy.props.StringProperty(subtype='FILE_PATH')
    display: bpy.props.BoolProperty()

class ExampleAddonPreferences(AddonPreferences):
    # this must match the add-on name, use '__package__'
    # when defining this in a submodule of a python package.
    bl_idname = __name__

    filepaths: CollectionProperty(
        name="File paths",
        type=CUSTOM_PG_filepaths)

    def draw(self, context):
        layout = self.layout
        layout.label(text="This is a preferences view for our add-on")
        for i in self.filepaths:
            if i.display == True:
                layout.prop(i, "path")

filepath_list = {
    "geo": "//asset.obj",
    "anim": "//asset.fbx",
    "render": "//asset.exr"
}

def register():
    bpy.utils.register_class(CUSTOM_PG_filepaths)
    bpy.utils.register_class(ExampleAddonPreferences)

    paths = bpy.context.preferences.addons[__name__].preferences.filepaths
    if not paths:
        for key, value in filepath_list.items():
            item = paths.add()
            item.name = key
            item.path = value
            item.display = True

def unregister():
    bpy.utils.unregister_class(ExampleAddonPreferences)
    bpy.utils.unregister_class(CUSTOM_PG_filepaths)

If you'd like to allow the user adding an arbitrary amount of filepaths, you can display the contents of the PropertyGroup in a custom UIList which will look like the material list, see:
Create an interface which is similar to the material list box

Alternatively you can just add a simple operator to add a new item:

class OBJECT_OT_addon_prefs_example(Operator):
    """Display example preferences"""
    bl_idname = "object.addon_prefs_example"
    bl_label = "Add-on Preferences Example"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        preferences = context.preferences
        addon_prefs = preferences.addons[__name__].preferences
        item = addon_prefs.filepaths.add()
        item.display = True

        self.report({'INFO'}, "New Filepath added")
        return {'FINISHED'}


Under the "Render size", change the " 50%" to 100%


Making an Emission shader emit a different colour of light than the colour assigned to the object?

Assuming you are using Cycles (which you never state what render engine you are using) use a light path node with the Is Camera output socket.

This will tell Blender that the visible color of the object is the one specified, but the emission remains whatever you specify in the above node.


Trying to fill an opening in an object and match depth

The reason.
The non manifold part comes from the bottom face of the "bridge".
You can see that if you select the face and scale it down:

Its sides are not linked to the main part of the mesh.

Few modifications in the file above, so that all faces are quads.


How to keep Workspaces in Blender 2.80 when opening previous version of blender's files?

Start new project using General preset

File -> Open .., locate your .blend, but before you open the file, uncheck the Load UI option

Your old .blend should be opened using the General preset UI, so the workspace should be there


Image texture won't show on object 3D viewport

I figured it out myself.
It's an issue to do with my AMD GPU Driver I think, since I've had issues with blender not opening due to my drivers before and I tried this on my macbook and it worked fine.
I set performance to high quality normals in render properties and it shows the textures now - in material preview before it would be blank. I saw somewhere that rolling back drivers would help so I'll try that as well.
Thank you @gilu for your help though!


How do I texture a Seperated Mesh as its own texture?

Apparently, there were TWO of the second object. Removing doubles didn't correct this, so I was stuck. I simply deleted one in Object Mode. Now both objects have separate materials. Weird!


Armature and Mesh not working together as intended

Actually, I think I know how to fix. I still have the mirror modifier on the mesh, as in I haven't applied it. Would that be the issue?


Is there a way to merge multiple identical materials

Have you tried this ...

Create a box object and apply a materials to it.
Select all the other mesh object that has multiple materials you don't want in your scene.
Select the newly created box object last. (Important select the box last)
Hit CtrlL, select material from the drop down list.
All your meshes should have the newly created box's material.
Save your file, Close it and reopen it to refresh the data cache.
Export the file to any appropriate format you may need.


Well, was able to find a .blend file on the internet that was working and compared the solution with mine. what I was missing:

On Volumetrics, change the "End" from 1000m to 100m


As Jaspa mentioned you should go to render tab, then go to sampling and increase the render samples to something like 1000 (the more the higher the image quality)
then hit render (this option is in the render tab)


Is there a way to make an emission shader effect in blender engine?

The best option is to switch to cycles and use the cycles emission shader. I am guessing you have never heard of it... you can do that by moving your cursor to the top and changing your render to cycles render. next go to your materials panel and click on the box that says diffuse and change it to an emission. If you need clarification on any of these steps just ask.


You camera must be placed and directed to render appropriately.  (User Views) and Camera View are not the same.  Press 0 zero in 3D View Mode to see camera view.  I would put this under a comment if I could.  I am new at this site.


How can I make set up a shading scheme in blender that creates a color map when rendered?

if you want a flat color in Cycles you have to use the emission shader.


Fix overlaps on a bent mesh - any automatic method?

I see you are using a blender version <2.80 but if you think this method can save you some time, you can always do it in a newer version and export the mesh in an earlier version.

We will use the "Weld" modifier introduced in blender 2.82 and its new "Vertex group" option. Basically the weld modifier will merge the vertices under a certain threshold distance. We will use a vertex group only in the outer area of your road, which has more sparse geometry, because else the main part of your road will vanish.

So basically, add a vertex group and set the value to 1 in the outer part, which bends atrociously when the curve turns. Set the central part to 0.

Add a weld modifier after your other modifiers, set the vertex group to the one you created. Tweak the distance and set the duplicate limit to 0. The weld threshold has a soft limit to 1 but you can enter a higher value.

Result :

This is not the prettiest mesh, but a big part of the job is done and it is non-destructive.

Edit : I noticed that this doesn't work for U-turns. I propose a slightly different method but the results are a bit mixed. We will mask the faces which are overlapping on the road.

Add a plane, make it follow the curve with an array and curve modifier. Hide it.
Back to your road, add a new vertex group. Name it "Mask".
Between the "curve" modifier and the "weld" modifier, add a "Vertex Weight Proximity" and a "Mask" modifier.
Set your new modifiers like so (don't forget to invert the vertex group in the mask modifier with the double sided arrow on the right of the field :

The result will have a few artifacts but it is much more usable than before :

To try to correct the uvs, add a "UVProject" modifier in the end of your modifier stack, and set it to your UV map, and use your curve or your arrayed plane to project :

I assumed you used different materials for the road and its exterior but you may have a visible seam there... I don't know much more about this.

Note : the "vertex group" option did not work in my 2.82 version although the field is here, I had to use a 2.83 beta version, if it was a bug it was fixed by the team inbetween.


Correspond an object's z coordinate to a noise texture?

If the cubes are identical, you can parent a cube to a grid, displace the grid and use the grid as per vertex instancer:

To do that:

Create a grid
Add it the displacement modifier and set its direction to "Z"
Parent a cube to the grid
In the grid property panel, set "instancing" to "vertices".

If you want some color variation, you can set it using the cube shader. For instance:

which is done with the object info node on a noise texture:


How to set different colors to each side of plane

I think you can do it by making it "physically" double-sided, which means:

In Edit mode, Select all faces, then ShiftDEnter to duplicate it, then CtrlN (or CtrlShiftN) to flip normals for all faces.
Add a new material and assign to the selection.
Make sure to toggle Normals when exporting.

It would work if WebGL can do single-sided render (I bet it can), which is normal-based, like GLSL. Or you can make two separate objects that overlap each other, and have their face normals completetly flipped.

If you just want to render it in Blender, here is the solution for BI:

And for Cycles:


OptiX CUDA out of memory error when rendering

The likely reason why the scene renders in CUDA but not OptiX is because OptiX exclusively uses the embedded video card memory to render (so there's less memory for the scene to use), where CUDA allows for host memory + CPU to be utilized, so you have more room to work with. I do know that OptiX isn't fully stable at the moment, Blender is still working on support for NVIDIA cards, so it could be that.
Things you could do to help make sure it renders:

Reduce your texture resolution. Bigger textures == a lot of memory eaten up
If you're using sub-surf modifiers like (especially adaptive subdivisions which are super costly) try to set them to lower # of subdivisions, or not use them at all.
Reduce the number of vertices in your scene

Personally, I've also tried:

Reducing the complexity of textures: Really intense procedural generated textures eat tons of memory too


When glTF export in Blender2.8, an animation is not played well

This should be fixed in the next version of Blender's glTF exporter, where the default value for Always sample animations has been changed to true (in #706).  I believe putting a checkmark on this option may be a quick fix for your problem.

Animations involving rotations are stored in glTF using quaternions (because glTF is a runtime delivery format, meant for rapid load-and-render operations with minimal pre-processing by the loader).  But quaternions have an important limitation, they can't distinguish between +180 and -180 degrees.  If you have Euler angle keyframes at 0 and 360 degrees, both of those values convert to the same identical quaternion, because the object is in the same orientation.  Interpolation between keys breaks down.

The usual solution is to place intermediate keyframes at 90 degree increments (or no larger than 120 degree increments).  One way to do this is just check Always sample animations which makes every frame a keyframe.


scaling problem with rigify when using multiple objects

Select your rig, go to pose mode and select the IK control.
In N-panel > Item > Rig Main properties set IK stretch to 0.


The setup is very basic. One thing to note is that I've used Wireframe modifier with second material.
Material
Just a mix between Transparent and Emission which is added for colorization and "nicer" visibility.

Material setup
First slot is above material for transparent object, second is for wireframe.
Most important thing here is to set Blend Mode Type as Alpha Blend.

Modifier
In Wireframe modifier set Material offset to 1 to be able to use material from second slot. Also set wireframe Offset to -1. It will hide wireframe object in main object.
Don't forget to uncheck "Replace Original", or else the low transparency would be replaced by wireframe. We want the mesh to have wireframe with the transparency, not just the wireframe.


If you want to speed up the overall frames pr. sec. you can do this in the Properties - Output - Frame Rate.
If you just want faster search through the video, two add-ons support this: Power Sequencer(included in Blender, but needs to be enabled in Preferences) or VSEQF: https://github.com/snuq/VSEQF
If you want to only speed up one strip, this can be done by adding a Speed Effect Strip.


If you're just in it for the looks, the easiest thing would be to take advantage of proportional editing. Using your cube as an example, do the following steps:

Sub-divide the cube multiple (Edit mode > Select All [A] > Specials [W] > Subdivide... then use the Last Operator panel [F6] to increase the number of subdivisions to taste).
Select just the eight corner vertices on the cube.
Enable proportional editing (O).
Change the proportional fall-off to Sharp (Shift+O 3 times if you're at the default of Smooth. Alternatively, there's a drop-down menu in the 3D View's header where you can choose the fall-off using your mouse).
Scale (S) those vertices. As you do, scroll your mouse wheel to adjust the fall-off influence of the proportional edit area.
To get sharp edges, select all the edges around the model and then crease them with (ShiftE) and drag until the value in the header is at 1.0 or just press 1 on your keyboard.

Finally, you may want to also use the Subdivision Surface modifier and the Edge Split modifier to help smooth things out a bit.


armature doesnot follow path after applying follow path constraint on armature object. The body separate from the armature

For some reason, you must have moved the mesh away from the armature, so it is not aligned with its armature anymore. The solution is to deactivate the armature Follow Path constraint visibility, bring the armature back to its Rest Position, and align back the mesh with the armature in the global space.


Here are some wonderful tools for speeding up the retopology process:

polystrips (https://www.youtube.com/watch?v=VN1aC7DsS6A)
contours (https://www.youtube.com/watch?v=5RR06wjt2rs)

These are paid, but worth every penny as they're really time-saving tools.

If you don't want to buy them you may do a fast retopology using a Bsurfaces addon. Go to User Preferences (Ctrl+Alt+U-->Add-ons) and enable it.

Add an object you want to retopologize, then add a Plane (or any other object you like), enter the Edit Mode and delete it (x). In the Properties Panel (N) add a new Grease Pencil layer, then go to the Tool Shelf (T)-->Grease Pencil and change a stroke placement to Surface.

Now go to the Tool bookmark in a Tool Shelf. Draw some strokes on an object (hold D, then press LMB [ How to draw grease pencil on a surface (blender 2,75)? ]). When finished, click on Add Surface in Bsurface panel. Change the settings below as you like.


view only one transparent object at viewport when overlaping to another object in blender 2.8

EEVEE
Use alpha and also change the setting of Blend Mode in that material:

The Blend option need to be set explicitly to make EEVEE know what material need to consider transparent problem. And only alpha blend will give an actual blend process for color.
Related post

Material Settings — Blender Manual

Transparent Materials Workflow from Cycles to EEVEE from 2.79 - General Forums / Blender Development Discussion - Blender Artists Community

How to use alpha transparent textures in Blender - Artisticrender.com


Simpler way to paste a texture on lots of Plane faces?

You have several options depending on the result you want, you can scale one plane to any size you want, then either the texture scales up with it, or you setup the texture to repeat over the plane.

You can use two array modifiers to duplicate one piece of mesh in two directions. This will duplicate the same piece repeatedly. Then you can apply the modifiers to turn them into a real mesh object, which is an option during export if you only want it that way in unity.

If you want each piece as a separate item in unity, then apply the array modifers, then in edit mode use P->By Loose Parts to break them into multiple objects and ⎈ Ctrl⎇ Alt⇧ ShiftC->Origin to Geometry to put the object centres in the right place.

If you have created multiple planes, select them all A and press ⎈ CtrlL->Material to set them to use the same material.

To automate tasks in blender, we can use python v3 which is also used to create addons. The API reference is here as well as an introduction in the manual. You can also find plenty of scripts around this site for examples.

And if you need help with unity, they have their own site


How to remove visible seams between joining objects

As someone mentioned in the comments, this is caused by how normals are calculated for each mesh you split off. The normals at the vertices along the edge of your split meshes are now pointing in slightly different directions. To fix this, transfer the normals from your original un-split mesh to the parts you split it into. You can do this using the Data Transfer modifier.

Comprehensive steps to fix:

Create a copy of your original un-split mesh and place in the scene. You can hide this mesh.
Split your original mesh into the pieces you want.
Add the DataTransfer modifier to the split pieces with the following settings

Source object - this should be set to your original un-split mesh copy
See screenshot for other settings


How to create a panel with different properties for different objects

Easy. You would have to assign the PointerProperty to bpy.types.Object. Use context.object to get a reference. Demo based on the template from How to create a custom UI?
import bpy

from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       FloatVectorProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Menu,
                       Operator,
                       PropertyGroup,
                       )

# ------------------------------------------------------------------------
#    Object Properties
# ------------------------------------------------------------------------

class MyProperties(PropertyGroup):

    my_bool: BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default = False
        )

    my_int: IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_float: FloatProperty(
        name = "Float Value",
        description = "A float property",
        default = 23.7,
        min = 0.01,
        max = 30.0
        )

# ------------------------------------------------------------------------
#    Panel in Object Mode
# ------------------------------------------------------------------------

class OBJECT_PT_CustomPanel(Panel):
    bl_label = "My Panel"
    bl_idname = "OBJECT_PT_custom_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tools"
    bl_context = "objectmode"

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

    def draw(self, context):
        layout = self.layout
        #scene = context.scene
        mytool = context.object.my_tool

        layout.prop(mytool, "my_bool")
        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_float")
        layout.separator()

# ------------------------------------------------------------------------
#    Registration
# ------------------------------------------------------------------------

classes = (
    MyProperties,
    OBJECT_PT_CustomPanel
)

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

    bpy.types.Object.my_tool = PointerProperty(type=MyProperties)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
    del bpy.types.Object.my_tool

if __name__ == "__main__":
    register()


PBR transparent fence texture node set-up not working

on your "right panel" (just under the option "backface culling"), on "blend mode", it is set to "opaque". As you are using Eevee, click there and just choose another blend mode, like "alpha clip" or "alpha blend".


One way to fix this is by placing the UVmap inside the texture space bounds :

then you can use the UV output directly in the ColorRamp input:

and here is the render :


After the soft cut, "Reverse Frames" is applied to the "parent" video instead of a selected strip

As solved in the comments, just use the hard cut instead of the soft cut, because the soft cut mantain the entire video clip in the strip and the parts you cut away are just hidden (infact you can re-expand the clip moving the start or the end side.
The hard cut creates a strip that is just the part you cut, infact you can move the sides inside to narrow it more, but you cannot move them outside to expand it to the whole initial clip.


How to create a property in a panel for selecting one face?

Sounds like you are trying to do too much at once, but see if this will help to break down the logic and possibly clarify a more specific question.

import bpy
import os
import bmesh
from bpy.types import Operator
from bpy.types import Panel

bl_info = {
    "name": "Blank1",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 79, 0),
    "location": "View3D > Tools panel 'T' > Blank1 > Blank2",
    "description": "",
    "warning": "",
    "wiki_url": "",
    "category": "",
    }

def main(context):
    if context.active_object.mode == 'OBJECT':
        print("object mode")
        print("Enumerated list selection")
        print("object list :", context.scene.enum_list1)
        print("Face list :", context.scene.enum_list2)
    if context.active_object.mode == 'EDIT':
        print("edit mode")
        print("selection box : ", context.scene.objects.active.name)
        print("index of faces selected : ", get_index_selected())

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context)
        return {'FINISHED'}

def enum_list_from_all(self, context):
    """EnumProperty callback"""
    enum_items = []
    objs = context.scene.objects
    if objs is None:
        return enum_items
    count = 0
    for obj in objs:
        if obj.type not in ['MESH']:
            continue
        identifier = obj.name
        name = obj.name
        description = obj.name
        number = count
        enum_items.append((identifier, name, description, number))
        count += 1
    return enum_items

def enum_list_from_selected(self, context):
    """EnumProperty callback"""
    enum_items = []
    for obj in bpy.data.objects:
        if obj.name == context.scene.enum_list1:
            sel_obj = obj
    for poly in sel_obj.data.polygons:
        identifier = ((sel_obj.name) + " F: " + str(poly.index))
        name = ((sel_obj.name) + " F: " + str(poly.index))
        description = ("face index" + str(poly.index))
        number = poly.index
        enum_items.append((identifier, name, description, number))
    return enum_items

def get_index_selected():
    obj = bpy.context.edit_object
    me = obj.data
    bm = bmesh.from_edit_mesh(me)
    mystr = ""
    for f in bm.faces:
        if f.select:
            mystr += (str(f.index) + ' ')
    return mystr

def initprop():
    bpy.types.Scene.enum_list1 = bpy.props.EnumProperty(
        items=enum_list_from_all,
        name="enum_list1",
        description="",
        )
    bpy.types.Scene.enum_list2 = bpy.props.EnumProperty(
        items=enum_list_from_selected,
        name="enum_list2",
        description="",
        )

def delprop():
    del bpy.types.Scene.enum_list1
    del bpy.types.Scene.enum_list2

class VIEW3D_PT_Blank1_Blank2(Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_category = "Blank1"
    bl_label = "Blank2"

    def draw(self, context):
        scene = context.scene
        layout = self.layout
        row = layout.row()
        col = layout.column(align=True)
        col.label(text="Enum lists based on blend file data")
        col.prop(scene, "enum_list1", text="Objects")
        col.prop(scene, "enum_list2", text="Faces")
        if context.active_object.mode == 'OBJECT':
            col.operator(SimpleOperator.bl_idname, "test button")
        col.separator()
        col.label(text="Alternative")
        col.label(text="Active object is displayed or set from box")
        col.prop(scene.objects, "active", text="Active Object")
        if context.active_object.mode == 'OBJECT':
            col.label(text="press tab to enter edit mode")
        if context.active_object.mode == 'EDIT':
            col.label(text='Index of Faces ' + get_index_selected())
            col.operator(SimpleOperator.bl_idname, "test button")

def register():
    bpy.utils.register_class(VIEW3D_PT_Blank1_Blank2)
    bpy.utils.register_class(SimpleOperator)
    initprop()

def unregister():
    bpy.utils.unregister_class(VIEW3D_PT_Blank1_Blank2)
    bpy.utils.unregister_class(SimpleOperator)
    delprop()

if __name__ == "__main__":
    register()


Not getting similar shape in edit and object mode

have you hid any geometry using the hide function in editmode (H-Key). If so unhide the geometry using ALT-H in edit-mode.


Just hit ctrl-B to bevel, and then you can set a number value for however much you want it to bevel.  You probably would want to keep it under 1 to avoid the mesh overlapping itself, but it depends on the mesh.


How can I make a procedural polished granite material?

Creating a Procedural Polished Granite Material

Guessing you're probably no longer in need of this effect, but thought I'd write a (hopefully) short tutorial in case anyone is interested in creating a Realistic Procedural Polished Granite Material in future.

This is the final setup and material that we'll be creating :D

(3mins49secs @ 750x1000px on CPU)

1. We'll start off this material by creating the procedural mottled texture that is present in granite stone (and in your reference image).

Firstly, let's create the lighter sections, using this node setup:

The nodes are fairly self explanatory, but we're essentially creating and distorting a noise texture using the slot attached to the Mapping node. We're then using the Color Ramp node to bump up the contrast by just the right amount. Underneath this we are mixing together some colour sampled from the reference using a Mix RGB controlled by another Noise Texture plugged into the Fac input. Finally we'll plug this into the first Color input of another Mix RGB node with the blending mode set to Screen and the bottom value set to white to give us our desired result... phew!

Next up is essentially repeating the last step a couple more times to get the darker shades of the granite, as well as the yellow (?!) ones.

As the nodes are pretty much exactly the same with just a few values changed, we can go ahead and simply press Shift+D to duplicate them, and move them below.

Again fairly self explanatory... but briefly, we'll use the Mapping node to essentially create a seed value for the noise, using the Location value to adjust this. The Noise Textures themselves are used to adjust the size of the noise, etc and once again the colours are sampled from the reference images.

The final part of this step is mixing these 3 outputs together. We'll do this by adding 2 more Mix RGB nodes with a Multiply blend mode, and connecting them accordingly. Don't worry about the white background, that will be cut out at the start of the next step :)

2. In this step we'll be finalising the granite base material. I won't go into details on every little section, but I'll explain the overall concepts.

So the extra Mix RGB > Multiply node is (as promised!) used to cut out that white and add in the creamy brown background colour. This colour is be plugged into a Diffuse BSDF shader, which is mixed with a Glossy BSDF shader using a Mix shader.

Next the crystal fleck mask is created. This is a simply case of using a scaled up Voronoi Texture thrown through a Color Ramp node plugged into the Fac input of the Mix shader. A simple step but it helps add another dimension of realism to the material :)

Finally, a procedural bump map is added to the Normal input of the diffuse and glossy shaders.

3. In this third and final step we'll be adding the final clear-coat (polish) effect to the granite material. Its fairly simple, but is slightly more involved than just mixing a glossy shader in... :)

The Voronoi setup is used to break up the reflections of the Glossy BSDF shader, adding a little bit of roughness here and there. The Noise bump Texture is used to add another level of surface texture. It's a (very... :P) subtle effect, but one that helps give the polish a slightly more 'painted' look.

Finally, we can add this coat over the Granite material, using another Mix shader controlled by a Layer Weight node. You can use a Fresnel node or other inputs to control this, but I used the Facing output because it looked pretty nice! ;)

So there we go! A sweet, fully procedural Polished Granite Material setup! :D

Hope it helps and don't forget to upvote/mark as the right answer if you liked it! :)


It's easy. Your UV map islands overlap with each other, and with the image border. Consider using some gaps for your UV map. Also you can use some bleeding in the paint Options tab to extend filling even more.
Also ensure if the 'Subdivide UVs' in the subdiv modifier is checked.
And also you can disable subdiv modifier when you paint the texture. The paint mode considers subdivided UVs, hence it keeps some edges uncovered.


Local Space does not work with Transformations Modifier

(Vocabulary correction: it's a constraint, not a modifier).

Your constraint setup looks fine, it should work as you want.
I recommend you check again the local axes. Especially the bone, since the local axes of a bone do not correspond to the scene like for every other type of object.

First, set your Transform orientation to Local :

Then select your object in object mode, it should show you right away.

For the bone, it's a little bit different. To check a bone's local axes, you have to switch to pose or edit mode first, then select it. (Or enable the axes display option of the armature.)


Bone rotation behaves differently to object rotation

There are a few issues here:

The orientation of the bone at rest is not the same as the object. By default, the Y axis on each bone is along the main axis of the bone (i.e. the direction the bone is pointing). As blender uses Z-up as its standard coordinates, this most likely corresponds to the z axis on your object.
Your object pivot point (the orangey dot when it is selected) does not match the pivot for the bone. This may, but not necessarily, cause differences in the rotations.
Euler rotations are not path independent, and as a result there are multiple ways to end up in the same orientation. Euler rotations are essentially a number of ordered rotations required to reach a given orientation, but there may be multiple ways to reach the same orientation. In this case try copying the values from the object to the bone and see which results you get.


How to fix face orientation when using screw modifier

There are two ways to do this.
Click on the flip checkbox in the modifier settings

Set the angle to -360d


Animate objects following a grease pencil stroke?

I don't think it is possible to use a Grease Pencil stroke directly as animation path.

What you could try instead is convert the desired grease pencil stroke to a Bezier Curve object and use it instead.

If you need the original grease pencil try converting a copy of it instead, so you can keep both intact.

This answer describes how you can do it in more detail.


Can not select object in other collection

This is a classic gotcha.

If you see this in the 3D viewport ...

You're still in Edit Mode and although it looks like you've selected another object, you really haven't ... you've added a secondary object to the selection.

Hit the TAB key to go back to Object Mode, then you should be able to select objects normally again.

Alternatively if you want to stay in edit mode but switch objects then you can simply click the Edit Mesh toggle in the outliner.

This is a real pain in the -Z, something I hope is addressed in the future.  It catches me out daily.


How to use Vertex Groups to determine the distribution of an object in geometry nodes?

If you want the particles to appear only on the vertex group, choose it in the Point Distribute > Density field:


Blender modeling a mallet / T-joint with variable cylindrical dia

At the beginning you could duplicate your cylinder and use the copy as the Target of a Shrinkwrap modifier so that you're sure that the circular hole you'll dig will stick to the cylinder profile. Then apply the Shrinkwrap and extrude to make the handle.

Also, you could use much less polygons:

Create a hole in the cylinder.
Extrude and make a circle with LoopTools > Circle.
In side view check that the circle's vertices are aligned with the cylinder profile (or use the shrinkwrap method if you think it's easier).
Extrude again to make the handle.


Can't add rocks from Rock Generator Addon

Strangely, rock generator requires that you have an object selected. Try adding a cube, then it should be available.


Is it possible to run multiple scenes in blender while only keeping one visible?

Sure, you see what the camera sees.

Ensure the camera of the "hidden scene" does not show anything.


Move your 3D Cursor around might fix the issue.

The amount of mouse movement converted into 3D translations are based on the distance between the local/selected pivot and the view pivot.  If you set the pivot point to 3D cursor, then the position of the 3D cursor will affect how much of your mouse movement is converted into actual 3D distance.

Objects' scaling transformation also has some play in this.


How to make the light from the flashlight in Blender Cycles?

the volumetric part of the light could be a parented object on his own, with appropriate nodes and textures for emission, transparency, translucency, maybe in a separate layer to be blurred, alpha overed and color corrected.


I rendered a 2000+ frame AVI movie with Blender Render and it corrupted, why?

Sorry to hear about your file; that can certainly be frustrating. I'm not sure why it became corrupted, but the best practice is always to render an image sequence. That way, if something goes wrong you can resume from where you left off. Plus, you can also open the sequence in After Effects (or any program that supports image sequences, including Blender) and re-export as an video file of your choice, if you need it to be one contiguous file. See this video as an example. I hope this helps.


Where is the render display mode setting in 2.8?

In 2.81 these settings have been moved to User Preferences > Interface > Editors > Temporary Windows:


Best practices for masking image layers for compositing?

go to node editor and enable use nodes
add mask node and mix node
in uv editor change from paint to mask (if you want a mask image, upload that image to uv editor, the mask will be placed over your image)

LMB+Ctrl  to add point on the curve, close curve by enabling toggle cyclic
use this mask as input for mask node and plug mask node to factor of the mix node

for rotoscoping you could use this add on, see this for more info.


I have been having a similar problem and using bone.length only works if the head of the bone is on the origin.
A more general solution is to find the vector from the tail back to the head and add that to the parent_matrix_inverted.
This function appears to work for bones regardless of their orientation. Note the rig must be in pose mode for this work otherwise rig.pose.bones will be empty.
def parentBone(rig, boneName, geo):
    bpy.context.evaluated_depsgraph_get().update()
    bone = rig.pose.bones[boneName]

    geo.parent=rig
    geo.parent_type = "BONE"
    geo.parent_bone = boneName

    vec = bone.head - bone.tail
    trans = mathutils.Matrix.Translation(vec)
    geo.matrix_parent_inverse = bone.matrix.inverted() @ trans


Hold down shift + s and select cursor to center. Then again shift + s and select selected to cursor. Your object will now got to the center. reference pics below:


Lamp Posts: correctly oriented instances on a 3D curve

You almost got it. You can do it by using an array + curve modifier, you just need to use the plane as an instancer.
Select the plane, add an array modifier and set the length to "fit curve", and set your curve.
Add a curve modifier, set it to your curve again.
Make sure to parent the lamp post to your plane, then go to the plane's object properties and select "Faces instancing". Here you go :

Note that this will not work well if you use a 3D curve.
How to tweak the workflow for a 3D curve :
Instead of using a simple plane for the array + curve combo, use an elongated plane in the Y axis.

Then after the Array and Curve modifiers, add a Weld modifier and tweak the distance until the vertices in the local X axis merge. You should now have a series of segments, with both vertices of each segment on the same XY plane. These segments follow the 2D curvature of the curve object.

Add a Screw modifier on the X axis, set the angle to 0°, the steps to 1 and the screw property to a small value.

Now enable instancing on faces.


Maybe this is a good place to contrast direct modelling, where you make curved profiles yourself, and subdivision-surface modelling, where you construct a framework, and anticipate how Catmull-Clark subdivision will make curves for you.

Bottom Row: Direct modelling
On the bottom row, the corner-verticals are selected, and then bevelled with enough segments to give you the curve with the required resolution. (If you bevel with 'Clamp Overlap' on, and take the width as far as you can, you will get a perfect circular arc. There will be duplicate vertices where the bevels meet: you can remove those with M Merge > By Distance)
Then the sharp top and bottom edges of the extrusion are narrowly bevelled too, with a couple of segments, to give smooth-shading some guidance. Without that bevel, the smooth-shading would interpolate normals straight over the transition from the horizontal to vertical faces, with a very unnatural looking result. (You can also guide the smooth-shading by splitting the normals, with Auto Smooth.)
Advantages / Disadvantages:
Up to step 3, so far, so good, for lower-poly modelling. The geometry has a lower resolution, so you can see curves are segmented on close inspection, but the shading makes them look smooth. Long thin triangles have been created in the base plane, but so long as it is flat, so smooth-shading doesn't have to interpolate normals across those, that's fine. This is the kind of topology that Booleans, and CAD packages, often generate.
The direct approach has advantages, up to step 3: it's quick, and limits the number of edges propagating across the model. The disadvantages become apparent at step 4, if you want to use a Subdivision Surface modifier. The triangles have broken the flow of face loops. If you do need to subdivide the geometry for higher resolution, that does not play well. Also, a lot of Blender's (and other applications') tools are geared to selecting, inserting, and sliding loops of consecutive quadrilateral faces. The triangles make the model harder to adjust, further down the line.
Top Row: Subdiv. Modelling
Here, a couple of extra loops are CtrlR cut down the length of the extrusion, and the corners are scaled back to give it half-hexagon ends.  Again, at step 3, the sharp edges are bevelled, to hold the normals. Some loops are cut across the extrusion, too. These are optional, but can be used to control the curvature that's generated by the Catmull-Clark subdivision modifier at step 4. Step 4 in both rows shows the result of 2 levels of subdivision, optimally displayed, and the 5th copy shows all the edges generated by the subdiv.


Don't use blender for this one
Since you only need a still image, there is no need for elaborate smoke simulations that take days to render.
If you really really wanted to use blender, try looking into Abstract Wave with Particle System
But really, it would be so much simpler, easier, and less time consuming to use something designed for creating art like this: http://www.escapemotions.com/products/flamepainter/
I even have made a demo of something similar to this that runs in realtime in JS to prove that you could code it yourself if you too. http://codepen.io/Thisisntme/full/KNpPEz/

If you wanted to know, my codepen works by creating a sequence of lines, and then dragging them down the screen (from left to right although it doesn't really matter) all while changing the y position with a few trig functions.


Why does Blender not update the screen properly, despite not lagging?

My guess would be that you are looking for the "Release Confirms" option in the "Editing" tab of the "User Preferences" window.


My object looks black rather than transparent

In order to have a more transparent material, use a Transparent BSDF shader instead of a Glass BSDF.
I mean this kind of node tree:


I can't remove or delete a curve from an object

I think the problem is you are selecting only a single vertex. To separate you will need more than one vertex selected.

Under Edit Mode either manually select the whole spline, or only the desired segments before separating. Alternatively select only one single vertex from the Spline you wish to separate, and press Ctrl+L to select all linked vertex > Press P to separate whole segment.

You should now end up with another object that contains new spline.

Seeing as you already seem to have attempted separation by selecting a single vertex, you may need to do some cleanup.

Although apparently nothing happened, you probably succeeded in separating a single vertex curve object. These are very hard to select, and nearly impossible to see. In Object Mode either hide the larger curve objects, or use Border Select and Border Deselect to attempt to select the single-vertex curves and remove them.

On a side note, if by "styling" you simply mean assinging a different material , you can style each separate spline inside the same curve object individually by assigning it to a separate material slot, and choosing a different material for each slot.

You can also control bevel thickness on a per-vertex basis with the Radius property, Alt+S in Edit Mode for the currently selected vertex.


How can I see which edge connects to which when UV mapping?

You have 2 options in the UV editor, I guess you're looking for one of those:

Keep UV and object mesh in sync.
Automatically select the shared vertices.

You need to deactivate the first option to have access to the second. The first option keep a link between selected vertices in the 3D view mesh and the UV map selected vertices, second one only concerns the UV maps, but I maybe both will give what you want.


Wireframe thickness like sketchup and color without rendering

In File> User Preferences> Themes> 3D View (or Ctrl+Alt+U) you can change the 'Active Object' colour and 'Outline Width' property:

If you want to change the colour of multiple selected objects' outlines, you will also need to change the 'Object Selected' colour. The 'Active Object' property will only change the colour of the outline for the last selected object.

Increasing 'Outline Width' give this effect:

As far as I can see, you can't change the thickness of the 'Edit mode' wire, only the 'Object mode' wire.


transparent instead of solid grey models?

You may have clicked transparency in the viewport next to one of the four viewport shading spheres. To set transparency off, press ALT+Z. This will disable it.
You currently are in wireframe also, so click on the shader sphere next to wireframe if you want to go to a different view.


When in doubt. go back in the tutorial. Pay attention to the section where the author sets the particles. For static particles use physic type to none.