text:
Unknown Grey Area in Blender
I have a question about the grey area that I'm facing in blender right now, whenever I try to pan and zoom in & out, this grey area is still in sight and its making my work harder and time consuming.
Even worse, there is one time I accidentally zoom out and I can't find my work anywhere and I have to save another copy for backup. May I know what is the reason of this or is it has anything to do with laptop specifications? because a while back, I never encounter with this kind of experience. enter image description here

Hello, I think you have a units problem, your house is several kilometers long. Anyways most likely you'eh itting the camera view limits, Go to the n panel then View tab and increase the Clip End value

Souds like a clipping problem. You have to manually set the distance that is drawn before and after your position. You can do that in view tab.

dont forget that the same goes for each camera in your scene (you can set it in camera options)

And additionally, even the grid is affected by this in perspective view, that's why everything turns grey.


text:
Active object falls only through parts of the other active object
i have these red cylinders that should slide into these slots. It works great in the middle of the object with the slots. But at both ends the red cylinders keep falling through the slots and land on the surface of the object underneath. I added some pics.
Maybe someone can help me out. Thank you.

did you add that object as a rigid body?

Yes. Both the cylinders and the object with the slots are active rigid bodies.

well then what is the length/size of that cylinder?(from the measure tool)

D=0.7m L=2m, But on the first pic you can see it fits inside the slot and doesnt fall through. But it falls through the slots at both ends.

I think you may have edited the object after applying the RB, delete the the current RB sim and reapply with collision type as mesh.
edit:i think I know the problem your object does not move, normally rbs are added to moving objects by default, yours doesn't, causing some problems, i tried recreating the scene and ended up with messing in the sensitivity panel and the dynamics parts, what you want to do is try adding a small amount of sensitivity, and disable the dynamics in it, reply if this worked.

makes sense. But i dont know how to to that.

It also doesnt fall through when the object with the slots is set as passive. With passive everything works as it should. But as active object it falls through but only at the ends.

just do what you did before and change the collision type from convex(weird sphere icon) to mesh(monkey)

I tried it. Didnt work.

Found the answer that worked for me in older thread.
Object > Apply > Scale
Worked. Thanks anyway

source: Stack Exchange

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

sort: votes


text:
Procedural Generation of object with random transformation
I am new to blender, so what I am asking may be a very simple thing to do. I am trying to procedurally generate multiples of an object and apply random transformations to it. I have a simple curve and want to generate multiple copies of it while also varying the copies scaling and translation. I have been playing with the particle effects option, but it doesn't seem to be working to what I want. And the array modifier has each of them spaced apart. I am trying to have them overlayed on top of each directly so that when the transformations are applied I have more control over the anchoring point for all the curves, and I not been able to find something that generates objects between two points of anchors.

did you try a hair particle system with Vertices as source? This way you can first define the exact location of your particles using a Mesh, Grid  or else, then use the Advanced check box of the ParticleSystem and tweak the Rotation/Phase?

What vertex would I choose as the source though, the main curve itself? All that happens when I do that is that curves just emit (as "hairs") from random vertices of the main object. Should I make a new mesh as a single vertex and choose that?

Can you provide more details on your scene or object? You're mentioning objects in your post then curve as source... this is a bit confusing. Screenshots would also go a long way to help you get an answer.

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


text:
Why are particles set to scale 1.0 way bigger then my Original particle
Just wanna understand the logic behind it.

I create a cube.(Not changing scale or size)
I create a icosphere.(Not changing scale or size)
Create Hair particles, and set SCALE to 1.0.

Now my particles are way bigger, then the original.
(I found that around 0.25 scale is resulting in same size than the org.
Why is that?
What did I not understand?

Final hair particle size is the result of multiplying hair length with particle object scale.
Default hair length is $4$ Blender Units, so to get an object of identical size to the original you have to multiply it by $1/4$, hence $0.25 \times 4 = 1$
If you plan on rendering particles as objects and need easy to set up scales then change hair length to $1$.


text:
Why does cloth simulation not work on a NURBS sphere which has been converted to a mesh?
I have created two spheres:

A UV sphere with 48 segments and 24 rings
A NURBS sphere, which I converted to a mesh using Object -> Apply -> Visual Geometry to Mesh

I then enabled cloth simulation, with the default options, to both meshes.  I placed a plane beneath them with collision enabled.
When I play the animation, only the UV sphere animates.  In fact, the converted NURBS sphere doesn't even fall, as shown in the image below.  Why is the cloth animation not working?

To clarify, although the spheres clearly have different geometry, it doesn't appear that the NURBS sphere has anything preventing it from deforming:

In addition, I can force some very strange behaviour if I place a cube with collision enabled intersecting the spheres.  The UV sphere simply pops up above the cube, while the converted NURBS sphere goes INSANE and explodes!

I would be very grateful to anyone who could explain this behaviour and how I can use a converted NURBS object with a cloth simulation.

I can confirm that something is not working as should, while i got the cloth sim working, it seems to only work once i activate the "Self collision", and then it's like the top snaps loose and the sphere starts falling.

Found the problem:
Select the converted nurbs object, press Tab to go in edit mode, press A to select all elements. Now press Alt+M and select By Distance.
This will remove all the unnecessary vertices, that essentially made the sphere a patchwork become one closed object with no split faces.
The reason Cloth did not work is that it needs a structure, the nurbs sphere was though only patches of separate faces.

Solved perfectly, thank you very much!

The resulting mesh from a NURBS sphere has too many overlapping vertex, which apparently unsettles the physics engine and the cloth simulation doesn't like.
If you enter Edit Mode and remove doubles with A to select all then Alt + M > Merge > By Distance it will work as expected.
The culprit appears to be the poles where all the loops meet. In Wireframe shading mode if your switch to top view and erasing the two poles it will also make it work as expected.
Remeshing or any other tools that rework the topology also seem to have beneficial effects.

Thanks for your detailed answer!  The other one was just a bit quicker :D The remeshing tools certainly sound useful too, thanks for that

According to the timestamps this answer posted 26 seconds earlier than the accepted answer. FYI. :)


text:
Adding Noise along lines using nodes
My goal is to add procedural grass patches along the crevices of tiles. I have a tile pattern as below

So, is it possible to add noise along those black lines so that they can be colored green to give some grass patch effect??
To my knowledge I can only add Noise inside the black lines by using mix RGB node with fac as the tile pattern and noise node as one of the inputs as shown below.

. But this isn't what I need.. i need the noise to extend beyond the line boundaries a bit more (not just inside). Any ideas how to achieve this??

Is the tile pattern procedural?

The tiles isn't a procedural .. it's just an image .

I think you will need some sort of distance function from the cracks between the bricks. If your herringbone is procedural, that could be maths, inside the node tree. If it is an image texture, then blurring will do a pretty good job. You could blur the texture in an external application, or by putting it through Blender's own compositor:

.. trying to get a good range of greys for maximum flexibility. Then..

.. (Left) it can be inverted and adjusted, using a Color Ramp...  Your Noise, (Center) can be put through another Color Ramp. When the two are Mix RGB > Multiplied, (Right,) you begin to see how the bleed-mask appears. It can be further adjusted, put through a 'Greater Than' threshold, or a softer threshold, using another Color-Ramp, or Map Range.

The Brick shader (Left), and the Grass shader (Center) can be mixed using the resulting mask (right).
These are the nodes which produce the mask:

The result:

This was exactly I was trying...Makes lot of sense. .. I'll try this logic


text:
Can we change the color of Ambient Occulsion?
I am working on a simple train scene. I turned on the Ambient Occlusion option. I was actually expecting black shadows near the edges (a default type) but instead, there were yellow shades. Is there a way to fix this issue or to change the Ambient Occlusion color manually ??

Are you sure you have recalculated normals properly.?

Yes, I did recalculate the normals for all the objects. I was getting this issue only when I was using a default HDR sky. It was back to normal when removed the sky and used background color. Anyway can you please tell me what did u mean when u said "recalculate normals properly" ?? Is it just by clicking "shift+ N" ??

If I right understand you need a node AO.
Cycles:

Eevee:

You may see tutorial - https://www.youtube.com/watch?v=lB7l_IUcQn4

Thanks! It indeed helped me get proper details. But the main issue was when I was using the default HDR skies with "Bent Normals" turned on. Though the AO node helped in minimizing the white effect in the edges, there was still a bit of it.. So turning of the "bent normals" and changing to normal background world removed the white effect and give normal AO effect. Thanks for the video though!


text:
Combining Cycles and Eevee Renders Effects into one
I am trying to make an animation scene of a Globe just like in the reference pic below (from Earth song): The main problem I am facing is with the clouds around the globe and the glow around the globe.

For Glow: So what I was able to achieve till now was to use layer weight and use it as fac to mix the main image shader with an emission shader so that I can apply emission only around the globe and this works well in Eevee and the result is as shown in the below pic which I'm satisfied with!.
For Clouds: I tried adding the Volume scatter to the clouds to get the effect as shown in the other picture which I rendered in Cycles. But, the same effect can not be obtained in Eevee as volume can be applied on only Box in Eevee. So I'm unable to get the same effect in Eevee.

So, my question is, is there any way to use the two render engines to get the combined effect? Or is there any other way I can make the clouds look better??
and I prefer to use Eevee in this because Cycles would take a much longer time for the "animation".
Btw, in Eevee I made the cloud material by using very basic Noise texture and using Transparent node. and the mesh of the clouds is, I took a sub-divided plane, deleted some faces and extruded (some double time) to get basic shape for the clouds and the used simple deform twice to make it into sphere and added Displace modifier (Voronoi). But the material looks really bad in Eevee, and better in Cycles.

Hello :). Well, you can render the clouds separately using Cycles, and then use the Compositor to combine both animations. I'm no expert on that, though :).


text:
armature copy rotation weirdly flips the direction
I am trying to make an animation of closing/opening of a Book. For this I'm using bones to control the same. I have added the bones as shown in the image, the closing of the covers are controlled by a controller bone on top. But I have an issue in completing the animation with the constraints.
Process followed to achieve it:  (Note: Careful with the naming of the bones, check the image)

The bones are parented as shown in the image. And then the Cover.L, Cover.R, edge.LRoll and edge.RRoll , I have added the bone constraint of "Copy Rotation" in the local space. The middle two bones (edge.LRoll and edge.RRoll) take the rotation from the controller and the side two covers take the rotation from their opposite edges (i.e Cover.L takes from edge.RRoll). (I have named the bones in the picture and also represented the parenting with the yellow arrows)

Basically this should help in coordination of the rotation of the covers with respect to the rotation of the edges, when the controller is rotated. Now I added "Limit Rotation" to the middle edges so that they don't rotate more than 90 degrees in local&World space respectively for R and L edges. Everything works fine till now as constraints for middle edges works well.

Now I want to constraint the rotation of the Covers from 0-180 degrees in World space and added the same to both the covers.

THE PROBLEM:  As I added the constraints of limit rotation to covers, the Cover.L works well in its boundaries, but the Cover.R weirdly flips its direction the moment it nears the 180 degrees. SO I want to fix this issue

Here is the constraints I have added (May be useful before opening the blendfile)

So, I am unable to understand what is wrong with this. Please guide me how to fix this issue?? Im I doing wrong somewhere? or is it a bug?
WHAT I HAVE TRIED
 - I have tried limiting the rotation with respect to the local space, changing the limit angles but this doesn't give proper limits.
 - I saw somewhere that the "roll" of the bones can sometimes cause rotation issues, so I even kept all the rolls to Z axis.
Btw: I am new to the working on Armature, that is the reason I might have been asking very basic issue. I have been following this tut https://www.youtube.com/watch?v=hjZa-h_f5Ts&t=6s
My blend File for further investigation: https://pasteall.org/blend/2b57b74d8746407ba12897f0c5d9559b

Issues with rotation around multiples of 90 degrees is most often gimbal lock  Do your bones use Euler or Quaternion rotation?

Hi!! The bones are using Quaternion rotation. Is there any way to fix the issue?

@batFINGER what else can you say? if this is so well known why is it not solved?

After researching this issue, I get the impression that there is something problematic about how Blender calculates rotations internally which makes rotation constraints reset bone values to zero whenever exceeding +/-180 degrees. It turns out that Blender continues calculating rotations even within ranges for which constraints are currently limiting rotations, and that these internal rotation calculations can continue after passing the constraint thresholds. What I find particularly baffling is that unchecking the For Transform checkbox for a Limit Rotation constraint stops "out of bounds" rotation values from being reported in the Transform panel, yet this doesn't actually stop the calculations themselves, which will still go on to create flips when transforming past +/- 180 degrees. This leads me to wonder what changing this setting meaningfully, operationally achieves, because it doesn't do anything to change this insufferable behavior.
I noticed in the video that the author doesn't seem to have your issue. But then again, I don't think he ever rotated the control bone far enough at any point to tell me for sure that his rig wouldn't have done what yours is doing. So it's not clear that his rig would behave differently than yours if pushed past +/- 180 degrees.
Some elsewhere have suggested creating drivers to address this problem, which seems to me like a very labor intensive workaround for something that shouldn't even be a problem. I noticed that the author creates drivers toward the end of the video, and I don't see any drivers in your file. I don't know that adding these drivers would have solved your issue, as I only skimmed the video. But I found it of possible interest that you didn't have any drivers set up before reporting this issue.
I can't find any problems with the rig itself, but I could have missed something. I have found other links to similar questions which either go without answers or explicitly report that there is no solution.
I would really like to see a satisfactory solution presented, personally.

The issue is that Blender uses aliased versions of Euler angles for the copied and limited values.  The solution is, don't use limit or copy rotation; use damped track and locked track, or use drivers.  See https://devtalk.blender.org/t/fundamental-flaws-in-blenders-constraint-philosophy/13921/10 for a bit of discussion.

I solved this problem by making sure both Cover.R and Cover.L had Mix: Offset (Legacy) in the Copy Rotation constraint property. Then, I moved Limit Rotation to the top of the stack (above Copy Rotation) for both.

Thanks.  This worked for me too.  Do you know why it works?

No idea, unfortunately.


text:
Materials & Lighting : How to get "Shadow puppetry" effect
I am trying to make a scenic view where I want to show people behind an umbrella. The effect I am trying to achieve is getting the shadow of the people onto the translucent umbrella. The reference image is attached below.

What I can understand is the umbrella can be given a mix of translucent and transparent material and put the Area light object in front of the person, and decrease the size and spread to low value. What I am achieving is not satisfying.

So, I am unable to understand what needs to be changed to get that effect and any other ways to achieve the effect properly. Any help to get this kind of appearance?? .. It would be great if someone can help me with the science of lighting in this case as well... (Also how to avoid multiple shadows from multiple light sources)

Yes @moonboots . 1. I need it to be more darker and crisp shadow. 2. I want to avoid multiple shadows. 3. I want to see if there are any other/better ways to get the results by changing the light settings or material.

@moonboots . where can i find the shadow settings in Cycles?

Translucent seems to be the good node for this purpose, if you want to make it slightly transparent mix it with a Transparent node.
In Cycles, in the Properties > Object Data panel, you can lower down the sun Angle value if you want a crisp shadow. You can also deactivate the Cast Shadow option:


text:
How to add particles on the surface of a mesh with Solidify modifier?
I am a beginner in Blender and whenever I try to put particles on a surface, they seem to be embedded within the mesh. I am making a model of a cake and the top chocolate layer has a solidify modifier. I was thinking of placing small chocolate flakes on top of the icing of the cake but the flakes rather than appearing on the surface of the icing are embedded within it and can only be viewed if their scale is increased (which obviously, creates a horrendous effect).
Is there a solution to this problem? If there is can anyone please help me out and please do elaborate as I'm a total beginner.

You need to make sure that the particle system is placed last in the modifier stack (the bottom most one) :

And also check "Use modifier stack" in the source panel of the particle settings :


text:
Changing the color of an object (UV sphere)
I've been enjoying my first hours with Blender so, my question is super simple. I am trying to make a neon loop with the sun on the horizon. How do I change the color of the sun only, without changing the color of the surroundings?
I added the Emission Surface and changed the color but in the result I got all the surroundings modified.

Could you tell me the right steps?
Happy quarantine :)

Does this simple gradient texture world shader work for you?
You can control colors via the color ramp, brightness of sun/backkground via the corresponding value nodes, size/diffuseness of the sun via the X location and scale of the Vector Mapping, position in the sky via Z and Y rotations.

Thank you very much for letting me know! =) I will check those nodes

It's okay if you don't set the world material to emission.
In world panel, you can select background option instead of emission and you can increase the strength of the background to make it brighter and brighter. You can also set any colour you want to the "world background"
To make the sun, you can make a emissive uv sphere, by the way i would recommend to make the sun circular instead of spherical (because the sun is very far from the earth so we see the orthgraphic image of spherical sun which is circular).
So to make the sun you can add a circle and fill it to get a solid face. Now set an emission material to your sun.
In eevee mesh lighting don't work so you will have to place the sun lamp or point lamp or plane lamp to simulate the lighting.
You can turn on bloom, screenspace reflections, and depth of field if you want.
Links:
https://youtu.be/hnLsktA4gmY
https://youtu.be/FsETUAsiI7c

Thank you very much! :)


text:
Blender video editing: shortcuts for selecting video strips
I use Blender 2.8 to cut videos and find myself selecting strips that I want to delete using my mouse - that's slow :( Often I cut a strip (Shift+K) and the strip on the wrong side of the cut gets selected (Apparently because my mouse cursor is located on the wrong side of the cut when the cut is performed.)
How can I quickly (i.e. via hotkey) jump to the strip on the other side of the cut and select it?

If you know that you always want to select the right strip after a split you can change the behavior of the split operator to do that:

That sounds useful, thank you! :)

Except moving the mouse cursor to the side you want selected before cutting(use K, unless you need a freeze frame), there is only this selection option, but it'll select all strips to the right of the playhead:

Unfortunately, this is not quite what I was hoping for, as I would like to select only one neighboring strip. +1 anyway for taking the time to write an answer, thanks :)


text:
Faster playback in VSE
When I edit videos in the VSE, I would like to have a fast preview (e.g. sped up 1.5 times). Is it possible to adjust the speed of the playhead?

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.

Wow, thanks!! Power Sequencer and VSEQF seem extremely promising!!! They even offer ripple-delete which I was already about to program myself xD


text:
Procedural normals make object look flat-shaded
I came across an issue that now seems to be present in all my projects. Any normal maps using a procedural texture (such as noise, musgrave, or voronoi) look slightly flat, even on fully smooth-shaded objects. After looking at the normals themselves on an object, I found out that they don't connect at the edges, which seems to be what's causing the flat shading. I still don't know how to fix it however.
Examples:

I am using Blender 2.93.2. Let me know if any other information is needed.

Turn the distance way down

Check in properties > vertices (green triangle) > normals > if Autosmooth option is on, maybe with an angle value which is too small.

@AllenSimpson That doesn't seem to fix it.

@joshsanfelici Autosmooth is off. That's not the problem. The problem is the normal map itself, since the object looks completely smooth without it.

I have same problem and i cant find any apparent solution anywhere. But if you dont need the procedural texture to move, i found some way around it. I will create desired texture and make the model subdivided/beveled as needed to obtain more normals-i call it normals to pixel resolution(i dont have too apply any modifier) then i put it into color channel(normals/bump are empty,metallic must be 0) and bake it as uv map. Then you can use it as normal/bump map with resolution of subsfurf.
I know that this is not ideal. But its best what i could do with that.
If there is a must for movement, only thing you can do is tweak screen space reflections in eevee render properties, but you will propably loose light effects this way.


text:
Rigify Deform Bones are Squashing
I recently started using Rigify and I encountered an issue where moving the IK bones on a custom generated rig causes the deform bones (and by extension the mesh) to squash unevenly ever so slightly. I'd prefer the bones and mesh to stay the same length and size no matter what position the IK target is at.
I am using Blender 3.1.0.
I have linked a Blend file where I recreated the issue, as well as a gif displaying it more clearly. Any help would be greatly appreciated!
Link to .blend

It's stretching because IK stretch is enabled (and because of some stretch-to bones.)  Select MCH-arm_2_ik and look on bone constraints.  Disable "stretch" for both IK constraints.

@Nathan That worked, thank you very much!


text:
How to paint by face using a color palette and UV coordinates
I am painting a low-poly mesh and I want to use a color-palette (that I could switch on the fly by replacing a texture). The workflow I know (as described in this video), is to go to edit mode, select the faces I want to color and move their UV coordinates in the UV editor.
However, I am not quite happy with this process as:

It's a bit slow (select the faces, go to the UV panel, scale to zero, move to the right pixel).
I do not have feedback on the look of the mesh until I am done selecting the faces.

I would like to have a sort of brush, that when used, set the UV coordinates of each face to a given value (corresponding to a color in my palette). Is there an builtin way to do this, or an add-on that can help?
If no, what would be the best way to create an add-on to do this? I looked at bpy.types.Operator, but it seems a bit low-level for this, I was hoping to be able to sub-class Brush or something like this.

You can write a script that automates the task of scaling down and moving the UV parts of the selected mesh. "Painting" would mean, selecting the mesh parts in Edit mode, and then running the script. I have no idea if you can change the behavior of a brush to mimic the process described.

@Blunder In the end I created an addon that can change the UV of the brushed faces. I'll post it here when it will be done.


text:
Is it possible to render as it is displayed in Material Preview?
I am trying to render an image. When I am in Material preview, it displays the objects in the scene without any lighting or shadows. All that can be seen is the texture.
When I render it however, what is displayed are the objects shaded with lighting. Is it possible to render an image the exact way it is previewed when it is in Material Preview?

Hello :). This thread should help https://blender.stackexchange.com/q/170533/

You can turn off your overlays, then in the 3D viewport go to View -> Viewport Render Image. You can render even viewport animation from this menu.

A simple way to get results as displayed in material preview-
Use eevee as render engine and go into world tab and choose environment texture as background.
Now,click open and go to where your blender is installed.
It is generally C:\program files\blender version
Now,go to files-studio lighting-world
Here you can get all the HDRIs that comes as default in blender.
Choose the HDRI that you are using in the material preview mode.


text:
How can I get the "strip input" toolbar in the Movie Clip Editor?
Could anyone please help me with this one? I can't see this small plus icon (png file attached).
I just don't have it! And the result is that I don't have this toolbar: STRIP INPUT. I can squize image or video or change dimension, but I would like to change "working area" (Idk if it is a proper name for it, but my image or video has a black area surrounding I can't remove).
I have check all toolbars but still no clue what to do and how to deal with it.

You need to update to 2.82a: https://www.blender.org/download/
In the View Menu you'll find it:

For making the video fit the preview area, use this:


text:
Getting UnicodeDecodeError: 'utf-8' codec can't decode byte when trying to read string in python script
Currently I'm trying to get the name of a vertex group on a model in my python script, I assign the name of this vertex group with the following code:
cutterproxweight = terraincopy1.vertex_groups.new(name="CUTTER_PROXIMITY")

later on in the script I attempt to access it:
cweight.vertex_group = cutterproxweight.name

when blender gets to this line it throws the error:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 3: invalid start byte

Note that this isn't the only error it throws and it seems to be completely random but all relating to a UnicodeDecodeError, The only thing that changes on the model between the first line and the line that throws the error is that I apply modifiers on the object.
It seems that the modifiers are somehow changing the name values as attempting to read it after just returns random characters. Reading the name before the modifiers returns the correct value though.
I'm not sure why this is happening as it was working fine before, I am using VSCode to write this so maybe it's formatting it some weird way, I've tried creating a reference directly to the vertex group on the object but I get the same issues.

ah is cweight some weight modifier? i tried all weight modifiers and all works. i'm able to assign cweight.vertex_group = cutterproxweight.name without errors... which blender version are you using? im on 3.1

https://devtalk.blender.org/t/unicodedecodeerror-utf-8-codec-cant-decode-byte-0xa7-in-position-3-invalid-start-byte/18082


text:
Monkey won't smoke or burn
I've just started with Blender, following Blender Guru's beginner tutorial lesson 1.
I can get the monkey mesh and the smoke box but when I click "play" nothing happens. The monkey won't burn either.
I've tried selecting the monkey and not the smoke, the smoke and not the monkey, both of them and neither. None of it makes a difference.
Blender version 2.82.7
How can I get Blender to do what it ought to?

Suggest add a link to the tutorial and your blend using: https://blend-exchange.giantcowfilms.com/ to your q.

Hi :). All the answers are fine, you can also download Blender 2.81 and it will work the same as BlenderGuru's.

related: https://blender.stackexchange.com/questions/170746/no-smoke-on-mac/170781#170781

In Blender 2.82, the fluids simulation system has been replaced by Mantaflow which default's caching methods, "modular" doesn't bake on playback. It instead allows you to bake different settings of your simulation individually, which saves a lot of time when you're tweaking your simulation.
You have to manually start the baking via the domain's panel. You can also change the caching method, but honestly the new "modular" is usually a better option).
I'd suggest you follow tutorials specifically made for Blender ≥2.82 or with "mantaflow" specified in the title.

So blender 2.82 has this mantaflow fluid simulation system which is a bit different. How you could go about it which worked for me is that you can add the smoke even if it is not visible, and save the file. The close and reopen the file that you save and bake it. It should work fine then.
Hope this helps...

OK, thanks for the answers. I don't actually care about burning the monkey, I was more concerned that there was something wrong with what I was doing.


text:
Textures inverts in animation
I am new to Blender and got the task from my teacher to create a driving vehicle.
Now I am having a problem with the rotating wheels. When they are rotating, somehow the textures are inverting. So black becomes white. I do not know why and couldn´t find a solution on the internet.
So normally it looks so:

After a few frames it looks so:

I am using an Image Texture as well as an Normal Map Vector. I am also aligning the texture in the UV Editor.
Thank you for any help.


text:
Can the inflow of a fluid simulation be scripted to flow water at varying mass & velocity during the simulation?
so I'm attempting a simulation of what is essentially a tidal barrage, and convinced myself that blender would be the easiest way but I don't see a convenient way to edit the behavior of the inflow in blender? I'm trying to manage the momenta of particles being input according to data i have for a 24hr cycle. Maybe it's a hidden feature.
I may have simply chosen the wrong software, if anyone could tell me if this is beyond the capabilities of blender? or how to access the code for managing the inflow?


text:
microdisplacement and render farms
I have a large animation to render that I just can't do on my machine.
Does anybody know of a good render farm that supports micro-displacement in Blender's Experimental mode?
And/or is there a workaround that will give me the look I need without using micro-d?
Any suggestions are welcome!
Thanks!

Thanks!
I ended up emailing every Render Farm I could find. Render Street was the only one that got back to me with a 100% yes.
If I get any more positives, I'll add them to this thread, just in case.

Well, https://www.sheepit-renderfarm.com/ seems to say that it is just made out of lots of volunteers' computers, and it is specifically for Blender, so I should think that would support it.
Hope this helped!

GarageFarm will add any nightly builds or enable experimental features for you on request. FYI, Blender has 33% lower rates than other 3D software on the farm. Might be a deal-breaker for you https://garagefarm.net/pricing/.


text:
Stitching animation in geometry nodes
I'm struggling through learning geometry nodes and have run into an issue.
I'm trying to animate stitching instanced on a curve. I thought I could just use the "trim curve" node to do the animation, but it keeps shifting the positions of the stitches that have already appeared.
I've gotten this far combining different tutorials together.

Also, since I'm just animating the main path of the stitch, the instances just pop on (the animation is a lot slower that the example I've posted here so it will be very noticeable).
So my question is kind of two-fold -- is there a way to have the instances animate on as they appear on my path and not wiggle around while the rest of the curve is animating on?
Here's a link to the .blend: Stitches
If anybody has an idea of what I can do, I would totally appreciate it.
Thanks!

To fix the shifting try Resampling the curve before the Trim, and change the Curve to Points from Length to Evaluated. - - - - - - -
Resample Curve (length or count) > Trim Curve > Curve to points (Evaluated)

Since this is a substantially different method from this one, it's posted as a separate answer.
You say in commentary that you want a sweep animation through each stitch. To achieve this, rather than trimming the path on which the stitches are instanced, we can trim the stitch-splines, collectively.
This group will trim a multi-spline curve (splines ordered by index,) at its accumulated length:

(To my mind, this is what Trim Curve should have been in the first place; the node we've actually got should be called something more like Trim Spline.)
With this group, we can trim a realized, multi-spline stitch-curve as a whole, in place,and key-frame the accumulated trim 'End Length':

After which, there turns out to be a bit of deletion to do, to prevent the caps of 0-length splines appearing in the mesh result:

And then we have capped, swept stitches.

If you want very nicely rounded caps on the stitches for extreme close-ups, I think that's a bit more work, and merits another question.

maybe try this node setup?

I added a switch geometry node, so you can see the difference between both setups:

Aaarggh! :D I suspect this is a nice answer, but I can't tell! (.gifs too restricted for resolution, here)  Could you maybe add a .png of your tree arranged to show the contrast between your methods, and/or a one-sentence potted description of the difference?

i am very sorry, i forgot to paste the node setup. The text was there :D but no image. I added it.

Ahh! .. OK .. you're contrasting the native points of the curve, with Curve to Points. Thanks :)

Thanks so much. It's working almost perfectly, but I'm still getting the stitch that's being added in a wonky place. I think I'm going to simplify this a little bit and instead of trimming the curves, see if I can just add a build modifier after the Geo Node modifier and see if I can have it build on that way.

The trouble with trimming the curve is that it will always be resampled. The end points of the curve must be at its ends. If the trim puts the end between previously sampled points, then there will be a visible adjustment.
A way to avoid this might be to sample the curve at the desired interval, leave it alone, and then animate the instancing of the stitches by the index of the (fixed) samples:

.. which can also handle (un-trimmable) cyclic splines or meshes..

Dang. That looks great! Question is, is there a way to animate each stitch because I'm going to be doing a lot macro shots before I cut to the wide. And it will be a lot slower, so it will be obvious when the stitch just pops on.
But seriously, I wish I could get a handle on Geometry Nodes like y'all have. My brain just doesn't work that way, I think. Thanks again everybody!

OK, @TheZFT, have posted another answer.


text:
When I move Parent Bone another bone thats a child of that parent bone's object moves another direction
When I move Parent Bone another bone thats a child of that parent bone's object(the eyebrow) moves another direction. Im not the best explainer so heres a GIF

In what way is it moving, I mean, I can see the actual eyebrow moving, but I can't see the respective bone moving.

Most likely it is just a simple issue in the way the objects/bones were parented. Could you upload a blend file so that we can more easily take a look? It is very difficult to find the actual problem just from the post. However, just deleting the bone, adding it again, and re-parenting may fix the issue. It also looks like the other side is working so you could try deleting that whole side, mirroring the bone, then mirroring the parent. This is designed to work easily for symmetrical meshes.

This is a so-called "double transformation": the bone moves the origin of the eyebrow (and all of its vertices follow) but the bone moves also the vertices away from the origin; so vertices move double the distance of what it's expected. Delete one of the two parenting (bone weight or object-bone parenting).


text:
Preserve vertex groups and weight paint through remesh
I have an old, old model of a fantasy creature with pretty bad topology, but I used to spend quite some time getting all the vertex groups and weights right for rigging and animating.
Now, I figured that with all the new fancy remesh methods available, I could just automagically fix the bad topology without having to paint each and every vertex group for each and every bone again.
Sadly, so far it seems that all methods of remeshing (modifier-based and the voxel/quad remesher in the Object Data menu) delete the vertex weight information. (Which, from a technical point of view, I understand, but from a user's point of view I dislike)
Now, is there a way to (approximately, if necessary) transfer my old vertex weights onto my newly remeshed mesh?

Have a look at the Data Transfer Modifier. I, or someone else, will be able to expand on this, if it's not clear.

Thanks, I'll try it out!


text:
How to save only Z-Pass Depth information as image?
Sometimes, I find it convenient to render a scene from the top with an ortographic camera and use the image as texture for another scene (kind of like using a flatbed scanner for scanning tree leaves or such).
Now, I have a scenario, where I am not interested in the image, but rather the depth information, to use it as a bump map in another project.
While I do know how to set up the render and have the result displayed properly in the render view (see screenshot), I can somehow not figure out how to save this specific view as a jpg image. (This is for a WebGL-project, so I'm trying to save on filesize - EXR is not the way to go here) But I can't seem to find the settings that would allow me to save anything other than the Color and Alpha pass...
What am I missing?

Enable Compositor and desired render layer (Depth) plug directly to Composite Node socket. If you want more output files at the same time add File Output nodes (there you can also specify other file formats to save than if defined by render properties).

Thanks! It might be added that a "normalize"-node has to be put in between the render layers and output node!
Would you like to post it as an aswer, so I can accept it?

Thank you. I think your Q is duplication  ... similar to this https://blender.stackexchange.com/a/58966/2214 so I'm not going to A, but feel free to create an answer (it can be also accepted by you as well).

You're right. I voted to mark it as duplicate myself.


text:
Matching lens distortion in a still image composite?
Hi I'm a little stumped as to how match lens distortion in a still image composite... motion tracking gives you a lot of options but how do you go about it with still composites?

Do you have the used lens and camera at hand? Then you could capture a lens grid. If not: does the metadata of your image contain lens and sensor information? Then you could position by trial and error.

Related: https://blender.stackexchange.com/a/62096/37728

Yann - I do have the data from the camera. It's a DJI FC300S ... can you explain how to use a lens grid?

Dimali - I'm aware of the basics of matching focal length etc... but how do you match the distortion? What I have is a long straight bridge that needs to be bent to match the lens distortion... I don't want to actually bend the bridge as I have multiple images to place it in, I want the camera to distort it.

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


text:
Clean bevels with bevel modifier on these inside corners?
Is there a recommended way to get clean bevels on inside corners such as these using the Bevel modifier with the subdivision surface modifier?

Try changing your Miter Inner to Arc

Ignore my comment :)
You need more support loops, highlighted here in orange

Thanks I'll give that a try


text:
Multiple character instances with BlenRig workflow?
I'm working on a project that requires using many instances of the same character and rig in a scene, which I've created using BlenRig 5 (working great).
How do I go about instancing the character and rig multiple times so that I can apply different animations to all the instanced characters? Any advice or tips on the best workflow for this would be much appreciated!

As far as I know this is a known limitation of the current system. You would have to have multiple copies of said rig, I think.

Ah that's a real bummer, in this case I might end up re-rigging my character with rigify... I noticed that you can duplicate characters and armatures with Shift+D if they already exist in the file (not linked). But unfortunately BlenRig uses a Mesh Deform modifier which still links back to the original overlay mesh so I think I would have to unbind, then re-bind a new copy of that mesh for every duplicate... really hope a multiple character instancing feature is added sometime in the future.

I think this is being worked on for the upcoming 2.8 series. For now, as far as I know, the only way to do this is to physically have either multiple independent copies of the same rig in the same file, or have multiple copies of the file in the hard drive.

Do you know if one or the other of these options is more intensive for the scene? It would be a lot easier if I didn't need to re-do all the rigging work, but I may need 20+ copies of the character in a scene so would having that many linked files cause problems?

Well it will certainly consume more memory, but I don't think the rig geometry alone would make a very significant difference, compared to say all independent animations you will have. Both solutions might end up being the same, chose whichever is more practical to you. I must say I have never done any rigging myself, so I am not really the right person to be talking about this.

Since Blender 2.81, a new feature has been added in order to overcome the limitation of one same rig per scene: library overrides.
It's only the first implementation and officially considered as experimental, it is still limited and it's planned to be enhanced in the future.

You can learn more on the manual

Simple example:
Scene consists of a mesh(character) and it's skinned rig.
When you duplicate a lot of the same objects using Shift+D, blender creates new mesh-data for every instance. All of these mesh-data has to be load into the memory before rendereing, but if you do not change anything on a dupli-mesh, the mesh-data dupli is unnecessary.
To 'fix' this, you can manually change the mesh data in the properties panel:

Or you can use the shortcut Alt+D (instead of Shift+D)! This way will also 'link' your meshes: if you move a vertex in one, it will change in every linked mesh.
Also when rendering a lot of objects in Cycles, a good way to handle memory is to use the 'Adaptive-subdivisions' option:

This feature is currently still under 'experimental' though.

The user asks how to independently pose and animate different characters using the same base rig, this doesn't seem to address that issue.

He asked about instancing the objects and armatures as well though?

It doesn't include the animating part that's correct

Thanks for the info Bert VdB but what I am specifically needing to do is link in multiple instances of the same character so that I can individually animate each character

... should of added, with the same rig duplicated and applied to those instances

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


text:
Motion Tracking a Camera Move and Zoom?
Is it possible to motion track a camera move that zooms mid way through the shot?

No. Currently is not possible to track shots with variable focal length or shots where the lens breaths too much.


text:
How to select only camera's across multiple scenes in bpy?
How do I iterate and select only camera's across multiple scenes via python?
This is what I tried but only works for the first active scene.
import bpy

    objects = bpy.context.scene.objects
    scenes = bpy.data.scenes.keys()

    for i in scenes:
        bpy.context.window.scene = bpy.data.scenes[i]

        for obj in objects:
            obj.select_set(False)
            if obj.type == "CAMERA":
                obj.select_set(True)

Always looping over context scene's objects.
Logic error, you were only ever looping over the context scene's ("the first ones") objects.
Test code below, selects all and only camera objects.  Sets the scenes camera as active for each viewlayer.
import bpy
for scene in bpy.data.scenes:
    bpy.context.window.scene = scene
    for ob in scene.objects:
        ob.select_set(ob.type == 'CAMERA')
        # set scene camera to active for each viewlayer
        if scene.camera:
            for vl in scene.view_layers:
                vl.objects.active = scene.camera

Great thanks! Tried and it works, just curious - how does this de-select the other objects? Does .select_set deselect automatically?

Expression equates to true or false.

Ok, so true for camera's and false for other objects.


text:
Importing a gtlf file pops up a traceback error
What do I do with this? I was trying to import a gtlf file to the Blender, but it always pops a traceback like this but I don't know why it does this
Traceback (most recent call last):
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\__init__.py", line 900, in execute
    return self.import_gltf2(context)
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\__init__.py", line 914, in import_gltf2
    if self.unit_import(path, import_settings) == {'FINISHED'}:
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\__init__.py", line 924, in unit_import
    from .blender.imp.gltf2_blender_gltf import BlenderGlTF
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\blender\imp\gltf2_blender_gltf.py", line 17, in <module>
    from .gltf2_blender_scene import BlenderScene
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\blender\imp\gltf2_blender_scene.py", line 17, in <module>
    from .gltf2_blender_node import BlenderNode
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\blender\imp\gltf2_blender_node.py", line 18, in <module>
    from .gltf2_blender_mesh import BlenderMesh
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\blender\imp\gltf2_blender_mesh.py", line 19, in <module>
    from .gltf2_blender_material import BlenderMaterial
  File "D:\Program Files (x86)\Steam\steamapps\common\ACE COMBAT 7\Game\Content\Paks\mod creations\ac7tools\blender-2.83.18-candidate+v283.5f156291cdcc-windows.amd64-release\2.83\scripts\addons\io_scene_gltf2\blender\imp\gltf2_blender_material.py", line 19, in <module>
    from .gltf2_blender_KHR_materials_pbrSpecularGlossiness import pbr_specular_glossiness

ModuleNotFoundError: No module named 'io_scene_gltf2.blender.imp.gltf2_blender_KHR_materials_pbrSpecularGlossiness'

location: <unknown location>:-1

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

You appear to have a broken install of the gltf importer. It's not finding pieces of itself.  I would suggest obtaining a clean copy of the Kronos code; removing the current importer; deleting its files; and installing the new importer following their instructions.


text:
Render pixel color information in the Image Editor
I'm fairly new to Blender and really like it's capabilities.
However, coming from Maya there's one thing i really miss, I can't seem to find a eyedropper tool that shows me the color values of my rendering in a stats bar for example.
In Maya, we had something like this.

It gives the information from the cursor location in the renderview for all the passes you need while shading ( RGB values, Z-depth values, object values, etc.).
Does anyone know if Blender got something like this or maybe a addon that gives such information?
I found the Historgram in the rendering tab but it's not that useful since you need to render the image first before you can use it.

In the image editor, hold down right-click on the image. Pixel stats will appear on the bottom of the window. This tool also works while the image is still being rendered.
Here is a demo (Notice the bottom):

X and Y are coordinates, Z is depth RGBA are scene referred values. CM RGBA are display refeerred (after the transforms set in the color management)

@Pullup Very correct

@Pullup Thanks, didn't know that :).


text:
Strange shadow over my mesh
I'm a beginner, I started learning blender a week ago, I followed a lot of tutorials on youtube on how to fix and prevent some common beginner problems, but I really don't know what's is going on on my mesh.
Since it is hard to explain I made a little video showing the problem on my mesh: http://sendvid.com/flt8t55s
I already checked for doubles, already recalculated normals.
If I apply a Subdivide Surface modifier all those strange shadows disappear and everything appear smooth, but from what I've learned so far, it is a bad thing to use Modifiers to fix some of the problem that shouldn't be there.
So I want to know what's could be the problem.

Please show one or more screen images to allow others to see your problem.  You can also put an annotation on the image to highlight your concern.

Update Blender 2.8.
In edit mode with all faces selected ( L key with mouse over model) go to: Mesh > Normals > Reset Vectors.
This should rest the normal vectors for you.

This solved the problem for me. Thanks alot.

It appears to me that the normals should be recomputed. In Edit Mode select all vertices with "A" and recalculate the normals by Ctrl-N. In addition, you may use "Smooth" from the toolbar in Object Mode to "smooth" the object. But that depends on how it should appear in general.
The vertices appear to be slightly "shifted", such that this kind of artifacts can happen. For me, it's completely ok to use the subdivide modifier. This modified subdivides all faces and reduces the angles of each of the faces.

Normals are ok, i already recalculated them. Anyway i fixed by deleting the faces and extrude them again. I did the same before, but for some reason there was this issue.

Don't hesitate to answer yourself the question an mark it as "accepted answer"


text:
moving vertices in quad view
I am in top view and moved my vertices to where i want them. I go to right view and all the vertices move out of position in top view. Is there a way to stop top view moving while moving in right view.
Thanks in

Could you better explain your problem? All the windows are showing the same geometry, only the point of view changes. If you move one vertex from 0,0,0 to 0,0,1 this change will be shown in all the viewport. From what I was able to understand, you would like to work in each view indipendently from the other. Am I right? May I ask what's the purpose of this?

Hi Carlos
I am trying to model airplane. In top view i have vertices match exactly to top of windscreen. In right view i try to move vertices to match top of windscreen, and in top view the vertices move so they dont match anymore.

In top view you should adjust only the X and Y coordinates of every vertex. In the right view you should adjust only the Z coordinate (press G an then Z to restrict grabbing axis), so in the top view you'll see no movements.


text:
Exported Mpeg Video ends up as .DVD file
When ever I try to export an Animation as an MPEG, it ends up as a .DVD File and is unplayable. Am I missing an option to fix it?

Unfortunately, outside of blender MPEG standards encompass a large number of formats (audio layer 1,2,3, AAC, MPEG 1 video, MPEG 2 video, MPEG program streams, MPEG transport streams, and then there's all the ISO 14496 stuff with H.264 video and MP4 containers).  Which of the many MPEG audio, video and container formats are you targeting?

See this question for instructions to output an MPEG. BTW, you can play the .dvd file using VLC or by uploading to Google Drive or YouTube.

or manually put .mpg after the save file name you wish to save it as. before you render ;)

And disable the File Extension check box below so that it doesn't add frame numbers to the end.


text:
Can blender use the Alpha channel of an image as transparency on a plane?
I was wondering if I used Photoshop to make a portion of my picture transparent, Would Blender be able to use those transparencies while importing the photo using the Import images as a plane Add-on

Related http://blender.stackexchange.com/questions/30394/how-to-use-transparent-texture-in-the-glsl-shading-mode-in-bge/

The add-on is able reciognize the alpha channel of png images (see this article: http://gappyfacets.com/2014/11/15/blender-import-png-image-alpha-transparency-cycle/). Did you mean that or were you asking about getting transparency from a .psd file?


text:
Duplication following a path not rendering
I have two sets of object duplicated along a path (speed checkbox unchecked) and they are not rendering (though they used to do before) either in viewport or in real render.

It's driving me crazy. What I've checked:
— Little camera in outliner selected
— Layers are selected in the render
— Visibility to camera not unchecked in object
— Material visible (works when not following a path)
And a few other techniques seen on the web.
Can someone please have a look at it?
Here is the link to the file
Thank you so so soooo much.

I looked over the file for an hour and didn't seem to be able to find anything. This seems to be a bug. I recommend you just recreate that curve from scratch. A lot of what are you are trying to do can be done using Animation Nodes more efficiently. Consider using it.

You need to make the duplicates real. Go to Object > Apply > Make Duplicates Real (...or Shift+Ctrl+A)

maybe showing an image of at least a small part of the scene rendered after doing that would show what happens better...

I was trying to get lights to duplicate along a path and could never get them to light up after set to follow the path.. Making the duplicates real fixed it..
"You need to make the duplicates real. Go to Object > Apply > Make Duplicates Real (or Shift+Ctrl+A)"


text:
how to draw this for a beginner?
I want to draw parking space as shown below
for me, perhaps there is two ways for doing this, one way is to draw a very big plane for the parking lot, and then draw the smaller plane as the individual parking space, however in this way, how to make the white parking lines or just use the texture ?
another way is just to draw a big parking lot and draw the lines on the parking lot plane.
as a beginner, i don't know Which way is the better way.

Usually the painted parts would just be a texture.  Check out my shader here, just use a mask for the painted areas instead of the noise/greater-than mask.

You can use a texture or another mesh. I'd go for a texture.

You can also use a single mesh, but create two separate materials, one for the ground, and one for the strips  (each one with or without textures), and assign selected faces of the mesh to each...


text:
Create a segmentation picture with each object class rendered in different color ?
I am using the blender to create a visual parking scene model, by using the python script the model could produces a RGB picture of the parking scene as well as the depth image, both are showing below.

I am just wondering would it possible to also create a segmentation image which separates each object class with a color, for example all the car object are in red, all the ground are in blue, all the building are in grey, like the examples

Give each object a unique 'pass index'. You can use the compositor, the Object Info node, and some math nodes to convert it to a colour.
This happens when you divide the object index by the maximum index you're using (to get it to a 0-1 value), and apply it to a diffuse material:

By using a Colour Ramp you can take that 0-1 value and map it to discrete colours:

By swapping out the Diffuse shader with an Emission shader, you just get the straight colour values:

This is the final material:

This is the blend file I used:

See the manual for more info.

is there any tutorial for this ?

I've added example images, the node setup, and an example blend file for you.

A python package bpycv can render annotations for instance segmentation and panoptic segmentation.
First, follow the instruction to install bpycv in Blender.
Here is a simple code to show how to get segmentation annotations. Copy-paste this code to Text Editor and click Run Script button(or Alt+P)
import cv2
import bpy
import bpycv
import random

# remove all MESH objects
[bpy.data.objects.remove(obj) for obj in bpy.data.objects if obj.type == "MESH"]

for inst_id in range(1, 20):
    # create cube and sphere as instance at random location
    location = [random.random() * 4 - 2 for _ in range(3)]
    if inst_id % 2:
        bpy.ops.mesh.primitive_cube_add(size=0.5, location=location)
    else:
        bpy.ops.mesh.primitive_uv_sphere_add(radius=0.5, location=location)
    obj = bpy.context.active_object
    # set each instance a unique inst_id, which is used to generate instance annotation.
    obj["inst_id"] = inst_id

# render image, instance annoatation and depth in one line code
result = bpycv.render_data()

# save result
cv2.imwrite("demo-rgb.jpg", result["image"])
cv2.imwrite("demo-inst.png", result["inst"])
# normalizing depth
cv2.imwrite("demo-depth.png", result["depth"] / result["depth"].max() * 255)

# visualization inst|rgb|depth for human
cv2.imwrite("demo-vis(inst|rgb|depth).jpg", result.vis())

The visualization result of instance segmentation, RGB image and depth

More detial: bpycv

doesnt work for me No module named boxx

@cxnt1 just install boxx by ‘“your blender python” -m pip install boxx’

Sorry, could you please explain how to install it, as I dont really understand... No module named 'bpycv.boxx

@cxnt1  I don't know the details of the error. Could you please provide more context.(you can send me email: ylxx@live.com )


text:
How to add extrapolation functionality in Blender 2.69?

I saw this short tutorial on youtube,
someone made a rotation animation of two keyframes, opened the graph editor, changed the interpolation mode to linear and selected linear extrapolation. The effect was, that although he animated a limited rotation, the extrapolatiton made the rotation infinite in both directions.
I tried to make this with my Blender (version 2.69), but as I opened the Key-window inside the graph editor there was no Extrapolation mode to select, only interpolation mode.
Do I have to add this mode separetly or is there another way to create this infinite rotation ?

In 2.69 this was in the Channel menu (⇧ ShiftE):

However I recommend updating to the latest version (2.75). See Is it advisable to update Blender to the newest version as soon as possible each time?

great, why did they put the extrapolation mode function into another context menu? I am not sure how to update blender, I installed it in linux only one week ago by typing into the console: sudo apt-get install blender , and assumed it would install the newest version by default.

The packages available for linux distributions are not always updated to newest versions, sometimes you need to use a custom ppa from a user that builds updated blender versions for themselves. You don't have to use the Shift-E context menu - it is in the channel menu, it was moved from the key menu to the channel menu in 2.56 so the tutorial was made before that.


text:
How to change the inherited F-curve independently from the original one ?

what I did:
I created a hammer, inserted two keyframes to rotate it a bit, set the curve to linear and extrapolated it linearly. Than I duplicated the hammer, the result was two hammers that spins synchronous.
What I want to achieve:
I would like the second hammer to spin with only half the speed or I would like to create a few hammers and each one spins some degrees ahead of the other. But I only have one curve in the graph editor for both.

You could also try to use F-Curve-Modifiers. To do so:

Go to frame 0 and add a keyframe on the rotation Axes you want
In the Graph Editor bring up that sidebar by pressing N. Add a Modifier > Generator. This will give you the polinominal tools to create a Graph as in y=mx+b as you might remember from school.

This value controls the ascent of the curve. By default it's 1, so we have y=0+1x, so y=x meaning that for each 1 frame (one unit on the x axis), the curve ascends 1 unit on the y axis as well (it actually goes up to 57,296 because 1 rad= 57,296°).

So if you want to have a second object that rotates half of that speed, you just enter half of the value you entered at (3), 0.5 in my example.

a real eye opener

Hi blackdot, if you're interested in the key markup for future answers, here is the meta: http://meta.blender.stackexchange.com/questions/524/what-case-should-letters-inside-kbd-tags-be

Use the NLA editor
The Pushdown (double down arrow [insert icon] in the action or NLA editor moves the action to the NLA.
Changing the speed of an animation is described in controlling speed of an action by driver or scripting
Move the action strip to offset the start time.


text:
How to start a Time Node?

my goal:
This is my first compositing attempt in Blender, my goal is to create an animation shown in the render window, the animation is a simple shift from one colour to another within about 100 frames.
what I did and thought:
To achieve this, I put a composite node for displaying the rendering, I took two RGB-nodes, each with a different colour, and connected them into a mixer. In order to obtain a shift from one colour to the other I connected the time-node into the fac-input of the mixer. The time node is set to a frame range from 1 to 100 frames, I thought the time-node would automatically go from frame 1 to frame 100 once it is connected to the mixer, yet in reality the value from the time-node into the mixer did not change at all, the displayed colour stayed the same.
the main-question:
What do I have to change in order to make the time-node run from start-frame to end-frame ?

thank you, I tried, but blender crushed every time I do this.

I do not have no file, at least I have no model or sculpture, only the node-graph, or do you mean sth. else ?

You can use the Time node just like you have pictured in your question. If you press F12 on different frames you will see that the color changes.
However it does not work well (and crashes blender sometimes) because you have only specified a color, nothing else for the output. You need a size for the output.
You can do that by mixing in anyone of following nodes: Render Layer, Image, or Mask.
Note the two selected nodes in the image below.
The node supplying the size (in my case the Mask node) must be plugged in to an additional Mix node. That mix node should have the factor set to 0 if the mask is in the bottom socket, or 1 if it is in the top. That way only your color gets rendered.

thx, what program did you use to capture the screen ?

@David I get same results whether pluging the mask node in the upper or lower socket and then I see no difference to my answer... Can you please elaborate?

@AbdulAlHazred Here is the meta: http://meta.blender.stackexchange.com/questions/404/how-to-post-gifs-on-this-site

@AbdulAlHazred I use licecap.

@poor You used green and red, I used green and blue. Joking aside, I did not understand your answer when I wrote this one. I see now that they are basically the same. (the socket position doesn't make a difference) Sorry if I bothered you. If it helps, I UVed yours.

Hehe! I really appreciate your colors, awesome :) As always, Thanks @David! I'm interested in why it's hard to understand my answer. I thought it's a good idea to focus on how to get the composite first. Don't want to wasting your time, but if you've got a tip for future answers, please let me know. Thanks again. UVed back ;)

@poor not a waste of my time at all. I think the main problem was me, I read it too fast. This is (what I think) happened: I skimmed over your first sentence (skipping the first image), then read the part about animating the val, and saw the image with the val animated.
What I would change in your answer is to make it more clear that you have two different solutions there. Add a  (in markdown just --- on a line of its own) in between the two parts.  I would make the images more different (at my first glance I thought they were the same) But defiantly differentiate the two answers.

The idea of the Compositor is editing some kind of Input. Either the rendered result via Render Layer Node or an arbitrary image from your hard drive via Image Node.
At the moment it's only possible to set up an empty plate in the compositor via Mask Node.

256x256px 'canvas' - automatic animation via Time Node
Note: It's not necessary to use a Time Node (in your case), because it's also possible to animate the Fac value of the Mix Node, related: Is it possible Animate the Compositor node parameters?

256x256px 'canvas' - Fac value animation


text:
How to install a tar.bz2-Blender-file manually for Linux?
Because I have a fatal problem with face selection in Blender and tried to install different Blender versions on different Linux versions without success, I was told to try to download Blender directly from builder.blender.org. Yet I only know how to install new packages using the apt-get command in the command line. In this case I have to be able to install it in another method that demands more expertise, this time it is a file that ends in .tar.bz2 that I should to install manually. Well I do not know anything, neither how to unzip, nor untar it, neither how to check for dependencies. Could you give me a quick step by step guide or any kind of suggestion.
(I am sorry, i am not quiet sure, if I should post this question here or on the Linux forum.)
I


text:
Can I get back film emulation looks into 2.80?
Just really hoping there is a way to do it, but is it possible to get back film looks for 2.80?
or people who would argue that you can still do it with composite nodes, yes, I understand you can, but that also means I need to know what exactly I want to achieve, I can't ever test a bunch of moods, then tweak it (which was my workflow so far), it's like adding 3 days more work just to see which one I like the most.....  i thought blender was supposed to be the fast option.....
I'm prepared to try to do some python, but I'm at a level where I can only botch things together....
Thanks

They don’t work. By “don’t work” they are of limited dynamic range and they end up muddling up where middle grey ends up. They are a tiny bit worse than canned Instagram filters, but with random garbage output.

Warning: The following approach may currently work, but it's not officially supported and may cause bugs and/or crashes when running Blender.
For this you need a copy of Blender 2.79b which you can download here. Use one of the appropriate one for your OS that comes as archive (.zip, tar.bz2, tar.gz). We will need this to get the old color management files.

Open the directory where you have Blender 2.8 installed and navigate to 2.80/datafiles. There should be a directory named colormanagement. Rename this to colormanagement_new.
Extract Blender 2.79b archive somewhere on your system. Navigate to 2.79/datafiles and copy the colormanagement directory CTRL+C.
The back to the directory of the Blender 2.8 and paste into 2.80/datafiles CTRL+V. You should now see the old options in the color management panel when running Blender 2.8.

If you want to revert the changes simply delete the directory you copied into 2.80/datafiles and rename colormanagement_new back to colormanagement.


text:
Exporting / importing .obj messes up the materials
I have a problem. If I export the model with blender materials in to .obj format, and then import it back,all the materials persist, but are much darker then the original exported ones.
(left - original, right - import)

The thing is that there is a transparency property added, and all specular changed to black, as well as base colour darkened a bit. Also mirror property is set to 100%, and mirror colour to black.
What is wrong with this? Any way to fix it?

Is the Render stayed the same when you exported and when you imported ? by Render I mean Cycles and Blender Internal

@Igor Yes, no changes, I just exported this object and right after that imported it back to the same scene

Are you doing it in Cycles or blender render ?

@Igor I am rendering in Blender Internal render, but this is not the case. The material properties get changed and, because of that, it gets much darker. I am trying to find a way to keep the material settings exactly the same after exporting and importing the model back.

Yeah, I see ...

You cannot avoid some changes, simply because .OBJ (.MTL actually) shading model is not exactly the same as BI one (not talking about nodes here, if it’s relatively easy to import .mtl as a basic nodal shader, the reverse operation is practically impossible and hence not supported).
That said, several issues here were fixed in past months (regarding mutual influences between world and material especially), so suggest you try with the latest build from our buildbot, if not yet done. :)


text:
how to make a parking ground model
I am new to making the blender model, I want to build a blender model like the one show below, instead of making a whole parking image, would it possible to make a single parking spot with the cube, and make cube's texture material like the parking spot, at last creating many cube like parking spots sequentially to make it as a real parking spot?

Procedurally generated parking spots.
I've made this one just for fun. It probably would be easier just to make mask in some vector app like Inkscape or Illustrator then mix materials by it, but lets stick to pure Blender Cycles solution. This method is from an artist approach, there is a better solution for this shapes for sure but I don't know Node-fu as good to generate them by math.
Final:

Setup:

Breakdown:
Stripes.

Mask.

Final thoughts:
Even if it is looking complicated it is just stacking simple things like Gradient texture and Wave texture on top of each other and using this mix as a Mask for textures. I really don't know how to be more precise with it so any questions are welcome and I will extend this answer as needed.

This is really neat!

@seaturtle I'm lately amazed by Substance Designer and while I'm learning it a lot I'm also trying to bring this way of thinking about procedural textures to Blender. But without simple things like Shape, Blur/Sharp and Warp nodes it's sometimes pretty complicated to make such simple things like this one.

I've never heard of Substance Designer, it sounds interesting. And I wish that you could use compositing nodes in Cycles materials—that would add blur, for one thing.


text:
Change value of sun light emission strength from Python console or script
I need to programatically modify the value of sun light
From the picture, it seems we can code it from
bpy.data.node_groups["Shader Nodetree"].nodes["Emission"].inputs[1].default_value = 1.2

however, the code produce an error that
>>> bpy.data.node_groups["Shader Nodetree"].nodes["Emission"].inputs[1].default_value = 2
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
KeyError: 'bpy_prop_collection[key]: key "Shader Nodetree" not found'

I found a similar post it is related to changing the material, but mine question is related to the sunlight, how would i do it ?

Yes the tooltip can be a little misleading, look for the node_tree property on the lamp data object.
With the lamp as context object
>> C.object
bpy.data.objects['Lamp']

>>> C.object.data.node_tree.nodes['Emission'].inputs['Strength'].default_value = 2

# or via bpy.data (D)
>>> D.objects['Lamp'] == C.object
True

>>> D.objects['Lamp'].data
bpy.data.lamps['Lamp']

>>> lamp = D.lamps['Lamp']

>>> lamp.node_tree.nodes['Emission'].inputs['Strength'].default_value = 3

I tried bpy.data.lamps['Lamp'].node_tree.nodes['Emission'].inputs[1].default_value = 100, but got error : KeyError : 'bpy_prop_collection[key]: key 'Lamp' not found

Select your lamp object and type C.object.data into  python console.  If it prints bpy.data.lamps["ItsCalledSomethingElse"]  it won't respond the the name "Lamp".

oh, I understand. i tried it in python console, by typing C.object, it responds with bpy.data.objects['Sun']; by typing D.objects['Sun'].data, it responds with bpy.data.lamps['Sun.001'].

This is not working for me, C and D don't exist if you call blender from terminal with a python script ./blender -b -P ./myScript.py

This helped me: https://blender.stackexchange.com/a/39533/61307

1. Select lamp
lamp_objects = [o for o in bpy.data.objects
                if o.type == 'LAMP']
lamp = lamp_objects[0] # assuming you only have one lamp

2. Set use_nodes to True
lamp.data.use_nodes = True

3. Set value
lamp.data.node_tree.nodes['Emission'].inputs['Strength'].default_value = 7


text:
creating new object through python API is different from existing one
In the blender model, i have a white line which is based on plane. I used the code below to make a second one.
def createObjectWithName(name):
    obj = bpy.data.objects[name]
    mesh = obj.data
    new_obj = bpy.data.objects.new(name, mesh)
    bpy.context.scene.objects.link(new_obj)
    return new_obj

 createObjectWithName('spot1')

However, the new created one is so different from the existing one, I can't figure out why, can anyone help?

try apply transform(location. rotation and scale)

New object is working fine. It appears you are after a duplicate new_obj = obj.copy()  Otherwise as pointed out by  @ВладКиндюшов would need to set the transforms, new_obj.matrix_world = obj.matrix_world  as well as constraints and other object level props.

when i tried new_obj=obj.copy() or new_obj.matrix_world = obj.matrix_world, the new created object disappeared from the image.

@ВладКиндюшов you are right, that is the problem of scaling

if you need save a transform use how said @batFINGER

@batFINGER could you post the comment as a answer, i would accept this answer

authors: Влад Киндюшов


text:
How to detect disconnected parts within a selection?
Consider the following edge selection:

What would be the fastest way to return the indices of the different parts of this selection? I am aiming for an output similar to this: edge_indices = [[24, 46, 29, 47], [32, 52, 37, 53]]. The goal is to detect separate (disconnected) parts within a selection.
One possibility would be to loop over every edge and check for selected connected edges and save the different edge loops, but I feel there should be a faster way to do this.
Thanks!

An iterative version
Each line is commented below but ask in comment if anything is unclear.
import bpy
from collections import defaultdict

# Get edge vertex that is not inside the vert_indices
def other_vert(e, vert_indices):
    return e.vertices[1] if e.vertices[0] in vert_indices else e.vertices[0]

def islands(edges):
    # Will store vertex index to concerned edge list
    d = defaultdict(list)
    # Will store not encountered edges
    not_done = set()

    # Prepare the dict and set above
    for e in edges:
        v0 = e.vertices[0]
        v1 = e.vertices[1]
        d[v0].append(e)
        d[v1].append(e)
        not_done.add(e)

    # While some edges are not encountered so far
    while not_done:
        # Take a starting one
        e = not_done.pop()
        # Start with one of its vertices
        verts = set(e.vertices)
        # This first edge belong to the loop
        loop = [e]
        # While next vertices
        while verts:
            # Gets corresponding new edges
            new_edges = set(e for v in verts for e in d[v] if e in not_done)
            # Remove them: they are encountered
            not_done.difference_update(new_edges)
            #for e in new_edges: not_done.remove(e)
            # Get next vertices
            verts = set(other_vert(e, verts) for e in new_edges)
            # Add the edges to the loop
            loop.extend(new_edges)
        # Yield return each loop
        yield loop

obj = bpy.context.object

edges = [e for e in obj.data.edges if e.select]

print("-")
for island in islands(edges):
    print([e.index for e in island])

Both lemon and batFINGER have done the job perfectly. However, lemon's code seems to be quite a lot faster, so I will mark lemon's answer as most helpful.

@lemon in case you missed comment on answer below, this needs a minor fix. It appears the poles on the UV sphere cause a keyerror trying to remove edge from list again.

@batFINGER, thanks. Bug corrected I think. Replaced a loop by difference_update (which should be faster, by the way).

@lemon I ran your script in a .blend with an active object (in both Edit and Object modes, with and without geometry selected). But the output is always just - It never does print([e.index for e in island]) What am I misunderstanding or doing wrong? Thanks.

@Mentalist, old thing. Maybe object mode but with edges selected. If in edit mode (edges selected) the data is not updated until you come back to object mode.

@Mentalist if you want to consider all edges, change this line edges = [e for e in obj.data.edges if e.select]

@lemon Thank you! Changing that to edges = [e for e in obj.data.edges] (dropping the requirement that geometry be selected) gave me the result I wanted: each island as a list. :-)

Recursively walk the selection.
Similarly to the method employed here How to find the number of loose parts with Blender's Python API?

Take one edge of the selection, tag it as "visited" then recursively
do same with its connected edges until no more.  This will be an
"island".
Remove the island from the selection, and return to 1.

The tag property of a bmesh element remains persistent, even without updating the bmesh, and AFAIK will need to be reset each time.
Test script, run in edit mode with edges selected.
import bpy
import bmesh
from collections import defaultdict
import sys
from functools import lru_cache

def recursion_limit(method):
    def rec(edges, **kwargs):
        sys.setrecursionlimit(max(len(edges) >> 1, 1000))
        result = method(edges, **kwargs)
        sys.setrecursionlimit(1000)
        return result
    return rec

@recursion_limit
def edge_islands(edges, as_indices=True):
    tags = defaultdict(bool)
    tags.update({e : True for e in edges})
    @lru_cache(128)
    def walk(tree):
        for edge in tree:
            if tags[edge]:
                yield edge.index if as_indices else edge
                del tags[edge]

        leaves = tuple(
            set(
                e for edge in tree
                for v in edge.verts
                for e in v.link_edges
                if tags[e]
                )
            )
        if leaves:
            yield from walk(leaves)

    return list(
        list(walk((e,)))
        for e in list(tags.keys())
        if tags[e]
        )

if __name__ == "__main__":
    # test call on mesh in edit mode
    context = bpy.context
    ob = context.object
    me = ob.data

    bm = bmesh.from_edit_mesh(me)
    selected_edges = [e for e in bm.edges if e.select]
    print("Input", len(selected_edges))
    islands = edge_islands(selected_edges)
    print(len(islands), "Islands", islands)

Time It

However, lemon's code seems to be quite a lot faster, so I will mark
lemon's answer as most helpful

On answering lemon commented he may not answer. Had a feeling (s)he would, with an iterative approach, it would be faster and would be accepted.
Did some optimizing for speed (it was  pretty much a copy paste job from an older answer)

As noted and striked-though removed the use of the tag property
. Took out set conversion and arithmetic.
Cached the recursion using functools.lru_cache
Recursed on all connected each time, rather than a single edge. This greatly reduces the recursion depth.

Have included the script used to test the two scripts for speed, with the caveat the script is run in edit mode, and the result desired needs to be converted to a list of lists. (Timing method that returns a generator will not consume the data and give a result of 0.01 or less milliseconds)
@lemon's script is designed to run in object mode. To make sure the selection is updated  the mesh is updated.  The input edges are calculated for both.  Anything outside the method eg imports, prints, creating the bmesh is not included.
Once again: reports the time taken to generate a list of lists using the two methods.  Make sure to edit the text block name the scripts are in. In example below this is in "batFINGER", lemon's in "lemon".
import bpy
import bmesh
from random import randint

bat = bpy.data.texts["batFINGER"].as_module()
lem = bpy.data.texts["lemon"].as_module()

def timeit(method):
    import time
    def timed(*args, **kw):
        ts = time.time()
        result = method(*args, **kw)
        te = time.time()
        print(f"{method.__name__ : <23} {(te - ts) * 1000 :6.2f} ms")
        return result
    return timed

@timeit
def batfinger(edges):
    return bat.edge_islands(edges)

@timeit
def lemon(edges):
    return [[e.index for e in island] for island in lem.islands(edges)]

context = bpy.context
ob = context.object
me = ob.data

bm = bmesh.from_edit_mesh(me)
selected_edges = [e for e in bm.edges if e.select]

batfinger(selected_edges)

#lemon test,
ob.update_from_editmode()
selected_edges = [e for e in me.edges if e.select]

lemon(selected_edges)

Results
Ran over a test mesh with both loose parts and large contiguous areas.  As a rule of thumb the iterative approach is quicker for large connected areas.
After the optimizations results are comparable.
----------------------------------------
79010 Edges
batfinger               741.60 ms
lemon                   707.91 ms
Islands: 3625 Largest: 4124

----------------------------------------
79010 Edges
batfinger               759.15 ms
lemon                   830.18 ms
Islands: 3625 Largest: 4124

----------------------------------------
79010 Edges
batfinger               759.82 ms
lemon                   710.61 ms
Islands: 3625 Largest: 4124

----------------------------------------
79010 Edges
batfinger               750.31 ms
lemon                   836.75 ms
Islands: 3625 Largest: 4124

Related
Is there a way to assign vertex groups to all loose elements via python
How to use loopcut_slide operation without any UI?
What is the bmesh equivalent to bpy.ops.mesh.shortest_path_select()?

Both lemon and batFINGER have done the job perfectly. However, lemon's code seems to be quite a lot faster, so I will mark lemon's answer as most helpful.

NP.  Been meaning to have a look into the loose parts  re optimize for speed, as well as fix recursion limit. . Favour the logic of recursion.

Hi @batFINGER, as for the previous question, the elapse rely on island count/edge count ratio... so (I've commented about it on https://blender.stackexchange.com/questions/75332/how-to-find-the-number-of-loose-parts-with-blenders-python-api/105142#105142

@batFINGER, as I've corrected my bug. 6x6x6 sphere is around 0.56s, and 0.45s for yours (which is faster here, so). But if I merge by distance the spheres (so 1 island), yours is 1.16s and mine is 0.59s.

@lemon Yes get similar results. (Albeit with a 3x slower PC)  and agreed (and noted above)  the iterative approach is faster for a large contiguous area. Growing the selection sent back via recursion has reduced the time considerably, compared to prior incarnation... where it was absolutiely  awful.  (One mega  sub'd edge would be the worst, akin to version 1)

@lemon could get another slight improvement in yours using   set(i for ...) over set([i for ...]).

@batFINGER, thanks. Effectively. Edited my answer.


text:
How to remove Solidify Mod intersections?
Consider a concave surface being solified in positive normal direction using the Solidify modifier. By nature of this modifier, self-intersections occur on the inside of concave curvatures (see GIF). Using various options of the modifier (Even Thickness, Only Rim, High Quality Normals) do not seem to improve the results.

Is there a good way to remove these intersections/artefacts and retain only the "outer" surface (see image)?
A solution may involve post-processing after applying this modifier and does not even have to involve the solidify modifier at all. A Python-coded solution is fine as well.

This has been a commonly encountered problem I think, but if there is a solution I’m not aware of it yet. I’m watching…

Would  Weld  and Remesh wreck your model?

Robin, I tried both modifiers before, but could not determine a solid workflow; what workflow do you suggest?

Alright, I figured out a solid solution. It is demonstrated in the GIF below. Here are the steps:

Duplicate the object of interest
Create a box of the region of interest
Duplicate the box and scale it down just a little bit
Use a Boolean mod on the original object with the larger box (exact, intersect)
Use a Solidify mod on the duplicate object of interest
Use a Remesh mod on the duplicate object
Use a Boolean mod on the duplicate object with the smaller box (exact, intersect)
Use a Boolean mod on the duplicate object with the original object (exact, difference)

This leaves a nice, solidified object without self-intersections and with the original surface on the back.
Edit: Although this method produces a solid object, the outer surface can be easily extracted by removing the inner surface in Edit Mode.


text:
What is the coding alternative for double edge loop select?
Suppose I want to select the entire mesh boundary. Alt + RMB on a boundary edge would select one edge loop (left image), while Alt + double RMB yields the desired result (right image).

How would I achieve this result by scripting? Assume the user first selects one boundary edge manually. I reckon it is buried somewhere in this function:
bpy.ops.mesh.loop_select(extend=False, deselect=False, toggle=False, ring=False)
But I can't quite understand how to use this function. Examples on how to do this would be very much welcome.

Bmesh script.
With a single boundary edge selected in edit mode, the LHS of question images can be achieved calling bpy.ops.mesh.loop_multi_select() directly from the python console.
>>> bpy.ops.mesh.loop_multi_select(
loop_multi_select()
bpy.ops.mesh.loop_multi_select(ring=False)
Select a loop of connected edges by connection type
>>> bpy.ops.mesh.loop_multi_select()
{'FINISHED'}

The mesh.loop_select operator is a different kettle of fish and requires context override if called from outside the 3D view.
This is a matter of giving the context override dictionary a 3d view "area", "space_data" and "region"
However even then, with all combos of options it still did not perform as did the alt double click on my test mesh.
Use bmesh.
IMO edit mode mesh operators can become mind-numbingly annoying to code when they cannot be "made to perform" as desired
Touched on some  other reasons to avoid operators Element indices messed up after switching from Edit to Object Mode
Can instead create our own methods
The boundary select function below takes an edge, tags it, looks at all untagged boundary edges linked to its two end verts, tags them and so on until it can go no further, then returns the edges.
Test script, run in edit mode with a single boundary edge selected.
import bpy
import bmesh
from collections import defaultdict

context = bpy.context

ob = context.edit_object
me = ob.data

bm = bmesh.from_edit_mesh(me)

edge = bm.select_history.active

assert isinstance(edge, bmesh.types.BMEdge), "Select an Edge"

def boundary_select(edge):
    tag = defaultdict(bool)
    tag[edge] = True
    grow = True
    edges = [edge]
    while grow:
        more = [
        el for es in edges
        for v in es.verts
        for el in v.link_edges if not tag[el] and el.is_boundary
        ]
        edges.extend(more)
        for e in more:
            tag[e] = True
        grow = bool(more)
    return edges

for e in boundary_select(edge):
    e.select_set(True)
bmesh.update_edit_mesh(me)

Persistence of element tag and select using bound bmesh
How to detect disconnected parts within a selection?

Alright this has answered my question. Hoped it would be easier to use the bpy operator instead of recreating the method. Does context override have disadvantages? When would you use override instead of creating your own method?

Chances are can use the operator, couldn't crack it, but am slowly learning not to bother if can do it with bmesh. (in less time). Re overriding context, would make a good question (may be one IIRC) I am of the view that if you make a method like above,  it takes context out of equation. All that matters is a valid bmesh. (btw have another similar answer re this somewhere that orders edges --> slice n feed into bmesh grid fill for instance)  Possibly most important is what you wish to achieve via scripting.  Covered some of this in prior answers to your questions.  Started coding blender

in 2.49, then 2.5 brought in bpy with no bmesh. Used to write all mesh manipulation either via ops or manipulating mesh data.  Had no idea how to use bmesh for a long while, after it arrived, and was all the rage. (similarly with  cycles and material nodes lol) . When it twigs, its nigh on impossible to look back . .. tho, to reiterate, depends on your use case.