How to do a compass/heading indicator I want to create a compass that is moveable around a sphere ("earth"). It's orientation should always be tangential to earth's surface, it's location the same as a second object and it should always point to a fixed point on the sphere ("magnetic north").

Background
I am trying to visualize how a compass/heading indicator behaves in order to display the difference between true (geographical) north, which is the axis of revolution of the sphere, and magnetic north for airplane navigation.

I set up an earth, a marker as a pole, an airplane, a housing and a compass needle. To be as close as possible to how this looks in the plane, I want the housing to contain directional information, whereas the 'needle' is fixed to the axis of the plane (compare https://en.wikipedia.org/wiki/Heading_indicator).

I managed to move the airplane tangentially to the earth by placing it on the "north pole" and then put the origin to the center of the earth. By now rotating it around the origin, it moves along the surface and stays tangential.

I'm able to keep the 'compass needle' aligned to the airplane by using the airplane as parent.

My problem is to find the correct constraints to keep the housing with the directional information on it in the right spot (on the airplane) and with the correct orientation.

I tried to use the constraints "track to / locked track to" to keep it facing the pole-marker, which works as long as I do not couple it to the movement of the airplane.

Coupling the housing to the airplane did also work, but then I'm losing the facing.

I tried to:
- permutate the order of the constraints
- played around with world space/local space
- different combinations of placing the individual origins.
- use of armature/bones

I'm also quite new to blender (using version 2.76), so I'm pretty sure I did stupid things and am missing the easy solution. But nonetheless I decided it's time to ask for help :-)

If you have any ideas or comments on this - I'm thankful for every help.

Damped track, locked track.

The compass has a limit distance/surface constraint to keep it on the surface of the earth.  There are other options.  It uses a damped track constraint to keep its local -Z axis pointing at the center of the earth.
The needle is parented to the compass.  It uses a locked track constraint to allow it to rotate in only a single axis.  It tracks a marker I've placed at the sphere's pole, parented to the sphere.
No matter how you move the sphere or the compass, the compass will remain glued to the surface of the sphere and oriented with it, and the needle will point at the north pole.
Your own axes are going to depend on how your orient your objects.  I've used empties here for my constraints, but strictly speaking, they're unnecessary; you can give constraints directly to objects and they will behave the same.
If you want to do it to something that's not a sphere, you might no longer be able to just use the origin of the object (definitely not for a limit distance constraint), but you can use shrinkwrap constraints instead, and you can locked track empties that are shrinkwrapped to non-rendering, negatively displaced copies of your mesh to acquire orientation.


Blender 2.8 Having trouble with scaling I'm wondering why my object shrinks a little after I scale it, I mean it does make the shape bigger but not as much as I scale it to be. When I click off of it the object shrinks down a little. Is that supposed to happen?

Do you happen to have a constraint applied to the object - eg constrain the scale to no bigger than a value?

For the hollow wireframe part - you may be wanting to toggle x-ray mode Alt-Z or the button next to the wireframe shading.


Can someone explain the benefit of the SSGI addon for Eevee? I understand that it tries to replicate GI like Cycles, but using it creates noise, which requires more samples, which increases render times, at which point you might as well just use Cycles, which can also take advantage of the pretty decent denoise compositing node. So why is everyone going crazy over this add-on? Is it just because it can create Cycles-like results in the viewport in real-time? I feel like I’m missing something obvious. Thanks.

TLDR: nice light bounces but faster than Cycles.
As you are aware EEVEE is a much faster render engine than Cycles. It builds on the approach of rasterization instead of raytracing. This means that it basically tries to calculate the color value for each pixel more directly, while raytracer like Cycles is taking an approach of simulating the approximate movement of light through the scene.
This leads to a variety of advantages and shortcomings. One of this shortcomings is that the dogmatic rasterization approach doesn't allow for bounce light (as this falls more into the simulation realm).
This addon works around that particular shortcoming. For example if you are dependent on the speed of EEVEE, can live with most of its shortcomings, but still need light interaction between your objects and can't bake your whole light because you for example have movement in your scene, than this is a quick way to achieve this.


How can I show the GLSL code generate by node? Sorry for my english.

how can i show the code generate by the node and can i write my own node Element?
Can i add a uniform float var? in order to comunicate with the fragment shaders?

The easiest way to insert your own data into a node shader is to use vertex or object color (max of 3 floats each = 6 floats). Other than that you can either:

Use an image as an input, using a specific UV
lookup, and then using python to set a pixels colour.
use your own GLSL shader (which means you have to do all the lighting
yourself, and real time shadows become hard),
create your own node (which involves recompiling blender itself).

I wish there were a better way than the three above, but if there are, I am unaware of them.


How to create a .blend in specific directory and write objects on it? For my addon, I want to pick the selected armature and save in an external file, so I wrote the following operator for doing it:

class SaveArmatures(bpy.types.Operator):
bl_idname = "armature_snippets.save_armatures"
bl_label = "Save Armatures"
bl_description = ""
bl_options = {"REGISTER", "UNDO"}

@classmethod
def poll(cls, context):
    if context.active_object:
        return context.active_object.type == "ARMATURE"

def execute(self, context):
    ob = {context.active_object}

    # Here the split method is just to get the first term of the string
    #because it is a multifile addon
    path = context.user_preferences.addons[__name__.split(".")[0]].preferences.save_path

    bpy.data.libraries.write(os.path.join(path, "Snippets.blend"), ob, fake_user = True)
    return {"FINISHED"}

But when I run it raises this error.
Obviously I need to create the file first but how to do it?

Traceback (most recent call last):
  File "C:\Users\Jea\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\Rigging_armature_snippets\loadsave.py", line 33, in execute
    bpy.data.libraries.write(os.path.join(path, "Snippets.blend"), ob, fake_user = True)
OSError: Error: Cannot open file C:\Users\Jea\Desktop\snippets\armature_snippets\Snippets.blend@ for writing: No such file or directory

location: <unknown location>:-1

Writing data into .blend files which are not existing yet works just fine. What you need to pay attention to is to make sure that the directory where the file is supposed to be stored in exists.

So in your given example, check if the folder C:\Users\Jea\Desktop\snippets\armature_snippets\ exists using the os.path module, and if not, create it:

if not os.path.exists(directory):
    os.makedirs(directory)

I'm on a Linux machine here, so I cannot check if the Python implementation of these methods on Windows is case sensitive or not. On Linux it is, so '/somePath' is considered something else than '/somepath'. Maybe you came across that?


What do operator methods do? (poll, invoke, execute, draw & modal) I've seen the functions called poll and invoke used in scripts. I'm curious what these are for and when they are called.

For a comprehensive description of operators and their use see:
https://docs.blender.org/api/current/bpy.types.Operator.html

For a quick run-down

poll, checked before running the operator, which will never run when poll fails, used to check if an operator can run, menu items will be greyed out and if key bindings should be ignored.
invoke, Think of this as "run by a person". Called by default when accessed from a key binding and menu, this takes the current context - mouse location, used for interactive operations such as dragging & drawing. *
execute This runs the operator, assuming values are set by the caller (else use defaults), this is used for undo/redo, and executing operators from Python.
draw called to draw options, typically in the tool-bar. Without this, options will draw in the order they are defined. This gives you control over the layout.
modal this is used for operators which continuously run, eg: fly mode, knife tool, circle select are all examples of modal operators. Modal operators can handle events which would normally access other operators, they keep running until they return FINISHED.
cancel - called when Blender cancels a modal operator, not used often. Internal cleanup can be done here if needed.

* - note, button layouts may set the context of operators to invoke or execute. See: https://docs.blender.org/api/current/bpy.types.UILayout.html#bpy.types.UILayout.operator_context


Camera Solve Error is not displayed I'm following a tutorial on Camera Tracking, but my Camera Solve Error is not being displayed where it should be (in the green box):

In the tutorial video, at one point it just appears magically. What is going wrong here?

Showing Camera Solve Error

At 30:47 in the tutorial, Andrew shows how to calculate the Camera Solve Error:

Tools panel →  Solve section →  click Camera Motion botton
(This button is shown highlighted in green below)
The Camera Solve Error is then shown on the Movie Clip Editor header on the far right
(As shown highlighted in orange below)

Troubleshooting

Here are a few points to check if the Camera Solve Error is not displayed:

Note that before you can get the Camera Solve Error, you must track all the tracking markers by clicking the Camera Motion Solve button, as shown at 22:48 in the video. Here are some points to make sure you notice:

First, make sure your green frame cursor on the Timeline window is at frame 1:

Then, select ALL of the tracking markers (select All by pressing A until all the markers are bright yellow, as shown below)
Then press the Track Markers (Forward) button, highlighted in green:

You should then see it track all the markers like this:

One thing that might be confusing about that tutorial video is that at 28:26, there is a break in the tutorial where a section of the video has been deleted/removed from the video. At that point, the tutorial maker, Andrew, has done some things, including calculated his Camera Solve Error and then come back to finish the tutorial. So, at 28:27 when the video picks back up, suddenly there is a Camera Solve Error shown:

If you had been following all the steps of the tutorial up to there, you would NOT have a solve error displayed there -- the tutorial doesn't describe how to do that until 30:47, as explained above.

So, this might explain why you see it appear "magically" -- just ignore that until 30:47.


Separate Selection and Ctrl Z I am following a video tutorial (jeep wrangler). The tutor separates a part of the mesh and then press Ctrl+ Z.
This brings back the selection to the same layer, but it is still a different mesh from the rest.
I can not manage to do the same in Blender 2.8
Any idea why ?

I know this is an old post but I came up against this very same problem myself today while using 2.82 and was able to find the a way to replicate the result Chris Plush had, so it's likely this post will come up in a google search in the future :).
Select the vertices hit Shift + D to duplicate them and right-click to keep them in place.
Press P to separate.
When you Tab out of edit mode you will have the smaller mesh for the front side panel and the side guide mesh will have remained intact.


How can I setup a looping animation in blender game engine? How can I create a logic brick setup for a looping animation of an object going back and fourth?

For example, I want my object to start along the y axis at position 0, and move 0.1 units over 120 logic ticks. Then, over the next 120 logic ticks, I want my object to move back along the y axis to position 0, effectively creating a looping back and fourth animation.

you can use the action actuator set to ping pong. It plays the animation once through properly, and then plays it backwards. The tricky thing here is the correlation from frames to logic ticks. If you left the default settings, there will be 60 logic ticks per second, and 20 frames per second. 120 logic ticks is exactly 2 seconds worth, so we need 40 frames to be 2 seconds worth of frames. make an animation of your object that is 40 frames long.

On the action actuator, set the start frame to frame 0, and the end frame to frame 40. Now, your animation will play through from frame 0 to 40, then will play it backwards from frame 40 to frame 0, looping endlessly.


Why can't I convert curves to mesh? So I made a model (of hair) using entirely bezier curves and a circle (using this tutorial) and plan to import it into Secondlife. All's fine and well, but I noticed I might need to use the decimate modifier to get rid of some of those extra vertices and transport it.

However, you can't do that with curves, so I looked up how to convert curves into mesh and, low and behold, somehow none of the commands work. When I looked up 'covert' in the Object menu, both of the options (Mesh to Curve and Curve to Mesh respectively) are greyed out and I can't click 'em.

Edit: Here's a screenshot of everything selected!

I've tried with and without the bevel taper objects selected, with and without the entire head of hair grouped together. When I select a few chunks of hair at a time, it lets me convert.

What's happened?
Thank you!

I ended up figuring it out.
Turns out, you have to individually select every single curve for this to work - not select them altogether, or as a group. Everything's working just fine now.


Adding text on a new line in VSE(Python operator) In Blender 2.8,the VSE gives the ability to add text but only on a single line. In order to add text on a new line, a new layer needs to be created  .

Are there any operators which can be used to add text on a new line (like \n in Python) in the text block so that text can be added on a new line and in the same text layer?

In Blender2.9 , Wrap-Width slider can be used to  place words on separate lines.


Create a radio button via python I want to create a own UI for a add-on which I am writing.
The user should have the ability to do different things with this add-on.
For example he can choose a cube or a pyramid. If cube or pyramid is choosen the ui will change. Some fields should be hidden and some should be visible.

Okay, first step: Create radio buttons. And now I am stuck :/

As far as I know I need a EnumProperty, which has the attribute items. Items has all the "values" the radio button can have.

Sadly it's not working for me.

I did this:

    def draw(self, context):
        layout = self.layout

        obj_types_enum = ('0','a','a')
        obj_type = bpy.props.EnumProperty(items = obj_types_enum)

        layout.label("Select original form")

        col = layout.column()

        col.prop(self, 'obj_type')

Any advice?

This is how you do it:
# This is how you make a static enum prop for the scene
enum_items = (('0','Cube',''),('1','Pyramid',''))
bpy.types.Scene.obj_type = bpy.props.EnumProperty(items = enum_items)

# This is how you display it in panel
def draw(self, context):
    layout = self.layout
    layout.label(text="Select Original Form")

    layout.prop(context.scene, 'obj_type', expand=True)


Self Collision - Blender Cloth Sim shrinks mesh I have been searching for days and have not been able to find an answer to this question.
I have a simple model.  A thin cube with default collision physics applied and a plain 1x1 with default cloth physics applied.  I checked self collision, leaving this default too.
I get the below result only a few frames in.  It is like the mesh shrinks rapidly.  I have relaxed the stiffness. lowered the weight.   Also rendered with out self collision fine....I can not seem to work out why this is happening.
I have a sub divide on the plain with 6 steps...!  lowering decrease render time but doesn't help the shrinking.

Most likely your cloth vertices are self-colliding with their neighbours due to the Self Collision Distance being too large.
Firstly, when running a simulation always ensure the meshes are created at 'real world' scales - eg, for a bedsheet you might assume 2 metres a side (or 2 Blender Units). Ensure you Ctrl+A and 'Apply Scale' following any changes to scale - to ensure the simulation is using the correct scale.
Secondly, reduce the Self Collisions 'Distance' property. At Blender 2.83.2 this defaults to 0.015 metres (1.5cm). If your vertices are closer together you may want to reduce that value.


Fluid simulation using imported .stl files does not function properly I am importing a .stl file of a hollow component with multiple openings. I want fluid to flow through the model as if it were a pipe. I have tried different combinations of treating the obstacle as a surface, volume, or both with each resulting in weird behavior. Basically the fluid will not flow through the imported .stl part or the baking process will show no result at all.

Am I missing something for the setup of the scene? I tried recalculating normals which did nothing and the geometry is very simple. Any advice or suggestions would be helpful.

I'm aware that this shape could easily be made in Blender and did not need to be imported as an .stl however, this is a just a demonstration of the issue that I have. The fluid does not flow through the pipe, despite being directly flowed over its other end. It's like the model is being treated a single solid object, no matter how I define the obstacle (surface, volume, both).

The problem that you are having is that your fluid is not a high enough resolution. Try changing the resolution slider in your fluid physics tab up to 100 or 150.


changing black uv texture areas to transparent in cycles So I've been using WoW model viewer to export .obj files into blender. Everything works great up to the point where a UV texture that's created by WoW model viewer has any transparency on it. In the UV map this is shown as a black area, and looks terrible on the model itself.

After looking it up on Google I found an archived post in regards to the alpha is the black area, however I don't understand how this translates and the post itself had images that were broken links, I've still yet to find anything on Google close to this archived post.

Just starting up with Blender I am struggling to find where to resolve this transparency issue, as it's making certain models look terrible.

You have to make the following Node set up: Connect 'Mix Shader' node in the 'Material Output', then use as your first shader 'Diffuse' and plug in it your 'Image Texture' node, now connect 'Transparency' Shader as the second shader, and finally to the factor connect your 'Image Texture' once more.


why is blender 2.76b not installing? Blender version of 2.70 and lower work just fine but now I want to be updated with the new improvements in Blender so I tried to install the Blender 2.76b. The installation process goes on just fine but when I run it, it shows:

I don't know what's the problem. I checked out the requirement page in blender.org and I think my PC meets it. Here are some information on my GPU:

Can someone please tell me what is wrong with this and how can I get 2.76b installed?

Just maybe .... you have to change your sound quality from
16bit 192000hz sound to 24bit 44100hz instead. Hope it helps.
Make sure to go through all your sound devices and set it
up appropriately.


How do I create a 1/2 and 3/4 cylinder? I don't know how else to state my question. What I'm looking to do seems like it ought to be very simple.

I want to take a brand new torus, and cut it in half. i.e. the exact shape you'd get if you cut a real donut in half (with the sliced edges being a face (I don't care if there are multiple edges / faces).

The same thing, but only cutting out 1/4, i.e. removing the bits of the torus shown in the selected image, and sealing / adding a face to the cut edges.

If I understood you correctly:

you may hit the P and select the Selection

It will detach the selection from your main object and create a new independent object.

After that you may select the edges and hit F

Something like this:

If its not your required result, please try to update the question with more details


Normal map baking (cycles) edges and bleeding edges I am trying to bake a normal map from a few high poly objects down to a lp base object for a game engine. I am using cycles with a baking cage but am getting odd results as you can see in the image below. The round nobs in the middle have weird bleeding edges and the horizontal panels in the middle have jagged edges.

I have attached the blend file

How to get rid of those?

These are put there on purpose to prevent artifacts around UV seams.

If you really want to get rid of them, set the margin to 0:


How to sequence paths? Didn't find an answer for my question in the forums, the question might be off. Sorry.

I can make an object follow a path by creating a curve / path and adding it as subject to a follow path constraint to the object.

Expected: I want to create two paths. The object follows path one. Stops for 50 frames. Then the object departs from its current position and follows path two. I tried setting this up by adding two path constraints and manipulating the frame offsets. (So: first path: offset:0, duration:100. second path: offset:150, duration:100).

Observed: The object starts following both paths simultaneously or skips the first path altogether.

What am I doing wrong and how can I get the expected behaviour?

See Blend file below...

By far the cleanest and easiest way to switch an object from one path to another is to set up your two paths with an empty to follow each.  Get those working properly before introducing your model.
Method 1

using a duplicate model for the 2nd path -  See Layers 1+10

Once the paths & empties are working right, parent the model to path 1's empty and check that it's moving as required.
Take the timeline cursor to frame 50 and slide the path's 'Evaluation slider' back and forth to position the model at the intersection of the two paths.
Keyframe the path's evaluation slot there, and also keyframe this slot with 'zero' at frame 1.
With path 1 still selected go into the Dopesheet and you'll see the two evaluation keyframes.
Select frame 50's keyframe, duplicate it with SH-D and slide that along to the right for say 20 or 25 frames.
This will force the empty & model to slow to a stop at the intersection and pause a little before moving on.
--> POINT A <--
Take the timeline cursor back to frame 50 and duplicate the model.  You'll then have two models that are precisely aligned.
At frame 50, go into the Outliner and keyframe the original model to invisible, the duplicate to visible.
(Both the eye and camera icons)
The aim being to switch to the clone at frame 50.  The original will still do it's thing but won't be seen or affect anything.
The duplicate will have inherited both animation and parentage, so these MUST first be cleared from the Outliner and using  ALT-P to clear the parent link. (choose "Keep Transformation")
With the clone clear of constraints you can then keyframe it's location & rotation where it sits.  Go back to frame 1 and keyframe them again.
From here it's only a matter of parenting the duplicate to the 2nd path's Empty and at frame 50, begin it's gentle rotation to align it with the new path.
-==============-
Many would point out it's better to use 'Child-of' Constraints' on a single model, one for each path empty and certainly you can do things that way.  An example of this method is described below and can be seen in Layer 3+10. In your own case it could well be a more practical solution if e.g. the model was very high poly.
Experience has taught me however to steer clear of redundant constraints where practical, particularly when that model is to be further animated or placed under new constraints, such as the physics engine etc.
-===============-
Method 2

acknowledgement and thanks to an as yet unlocated contributor who provided this procedure. (might be @Moonboots ?)

The 'Child-of' method -  This is in layers 3+10
Do as above down to (not lower) than "POINT A".  Your paths and respective empties should be moving as required and path 1's Evaluation slider adjusted so it's empty slows to a stop at the paths' intersection at frame 50, pauses, then continues on it's way.
From here we diverge from the duplication method...
Instead of parenting the model to Path 1's empty we instead use the "Child-of" constraint.
Move the  model to the path's empty at frame 1.
Place a Child Of Constraint on the model.  The target will be Path 1's empty.
Press 'Set Inverse' button - now the model is parented to the empty.
At frame 50 where both reach the intersection, insert a keyframe for the object (LocRot) and another for the influence slider. (still at 100%).
Move 1 frame forward
Select the model and open the Object menu at the bottom of the window, choose Object -> Apply -> Visual Transform, do not move the timeline cursor!
Keyframe the Child Of Constraint's influence to 0%
keyframe the model again. (LocRot)
You can now move the timeline.  The model is again free and unconstrained.
Still at frame 51 place a 2nd 'Child-of' constraint on the model, the target this time, Path 2's Empty.
Press the "Set Inverse" button and the model is now parented to the 2nd empty where it will follow path 2.
The model can also be rotated gently (and keyframed) to align it to the 2nd path as it begins it's trek.
Note that the 1st 'Child-of' must be above the 2nd in the constraints list.
-===============-
As can be seen in Layer 3+10, the Child-of switching does work well.  But as the contraints are always there and in my experience, can be upset by as yet unknown factors that once in play, seem irrepairable no matter what is tried and requiring a return to an earlier saved version, or a manual redo.
To date with my own projects this has never happened when cloned switch-overs are used.  Their respective constraints (if any) are local to themselves and don't interfere with their 'siblings'.
-===============-
A point that could be useful - Once a parent or path's transformations are done, (i.e. no longer moving) those constraints cease to affect the model and you can exploit this, animating freely as you wish.
The Blend file (vers 2.77a) -  Mix Layers 1 & 10 or 3 & 10 for each method.


Really slow 3D viewport render preview with gtx-970 I do have a new computer (much better than the previous one) and the preview rendering in cycles render is for taking REALLY long time, 5 samples/sec.

I do have Intel i7, 16gb RAM, MSI gtx 970 (4gb), so no idea why it takes so long time.

Any help? Tried changing to CUDA, changed both in user preferences and in the "render" tab.

When you switch to GPU rendering you need to adjust the render tile size. CPU requires small tile sizes, GPU works better with large ones. Start with a size like 128x128 or 265x256 and see if that makes it better. Make a few test to find an optimal setting for your system


Render has gray spots all over it I didn't use cycles render a long time and got a problem. If I use dark environment lighting, blender doesn't render it smooth. Maybe it happens because I'm using denoising, I don't really know.
So here is how it looks:

And the whole render look like this:

Gray spots mess up all render. I tried to search how to remove them, but still didn't find anything.

You could do these things:

You probably have too little samples in your render. Increase your samples and re-Render.

Render with "Denoising Data" or if you have it enabled, render without.

If you render with the old denoiser, render with the Intel Open Denoiser (The node in the compositor)

If that doesn`t help, please post a render without denoising.


The intersection part of a plane I have a cube sliced by a plane:

I would like to get the part of the plane inside the cube. So I figured a boolean modifier would the trick. Whether I apply it to the cube or plane or chose union, intersect or difference I always end up with some 3D object - some part of the cube. I would like to have only the plane part of the boolean.

Following @Gordon Brinkmann's comment, in Blender 2.9x, using the 'Fast' Boolean option, (the modifier assigned to the plane,) it seems to work OK, here:

...across the angles.

But 'Exact' seems to fail; it includes the volume in the cube behind the plane's normal.


Motion foward is stoping the character's fall Ok I searched this question and seems nobody is talking abount this.

I set up a acceleration system with bricks of "Servo Control Motion" being actaveted by an property whith number that is kind of a velocimeter. I push the accel button and it add to the property and subtract when not pressed. The higher the number of property activate the Stronger "Motion Actuator", (corrent have 10 motion actuators in sequence each stronger than de last)

I Got that problem when the character is in mid air, while accelerating he's falling very slowly, stop the motion and he will fall normaly. It was actualy occuring with the "simple motion actuator" in "linear velocity" so a read in the manual that the "servo controler" fixes that problem. I tested it alone and seemed to work fine while falling. but after that I put it in sequence to simulate acceleration of a cart the problem of the slow fall was back.
I don't know if i changed other option in phisics of the character to be hapening this.

I cold set up an sensor to stop all te Motions actuator while he's in mid air, but it will stop the motion foward when he's falling, and i want to keep the foward velocity while in air.

I haven't used logic bricks since 2008, and I quickly moved into python scripting for more flexible control, but I believe the issue you are seeing is from your Servo Control attempting to match all of the velocities, instead of the axis you expect it to effect.

I assume Z is up, and that your servo control is set to zero. The servo control tries to reach zero velocity on the z axis, effectively resisting gravity!

The XYZ limit buttons below the Linear Velocity field actually limit the force the servo can apply to reach the target linear velocity. If you turn on the Z limit button and leave the min/max values at zero, then the servo control will have no power over your Z axis.

Good luck!


How do you make this theme? Hi!
I found this image in one of the topics (Keep sharp edges when using subdivision surface)
I was wondering how can I make this theme!
Thanks!

You can make a theme from the Themes tab of the User Preferences (from the File menu).

From the "Presets" drop-down, pick a base theme, and then just start tweaking! You can see the results immediately, and when you're done, you can hit the plus button next to the Presets box to save your theme.

On Mac, you can find your saved themes in ~/Library/Application Support/Blender/<version>/scripts/presets/interface_theme (hit Shift+Ctrl+G, paste it in, and put in the correct version).

(On Linux, it's probably somewhere in ~/.config, and I've got no clue where it is on Windows. If someone does know, please edit my answer!)

The theme in your picture actually looks like the Graph theme, which should be installed by default. You should be able to just select it. (But be sure to hit Save User Settings at the bottom! Otherwise you'll lose your changes when you quit.)

Edit: Fonts are not part of the theme at all. You can change your font in the System tab, by entering a path to a font file in the Interface Font box in the bottom right (of course you can just use the open panel button).


How to illuminate aircraft near lights on aircraft I am relatively new to the forums and have searched for advice on this question, but havent found what I am looking for. If I have missed something like this on this forum then please let me know and i'll happily go and read something that has been answered already! So please go easy on me!
I am in the process of creating a still rendering of an aircraft flying in front of a night sky. I am fairly happy with the aircraft itself.
The scene lighting comprises of a Node world light illustrated in the screenshot below. The purpose of this material is so that I can match the ambient light in the night sky with the light on the aircraft skin. I have also illustrated (in the same screenshot) the fuselage material.
I am trying to do the aircraft lights, which includes wingtip lights, a red light on the underside, and a white strobe on the tip of the tail. I am struggling with getting the lights to glow and light up the area around the light on the underside of the fuselage. It seems the fuselage material will not accept the light from the emission sphere, regardless of the strength.

Thank you kindly!
Edit, attaching information that shows the aircraft when the emission shader is increased from 1 to 100.

The plane material is very light, very reflective and brightly lit.
You'll need to increase the light's strength to illuminate your plane.


Control Animation in BGE is it possible to play, pause, and stop the animation with plane as image in blender? i need to use the button to control my animation in BGE. but i don't know how to make it. can anyone help?

You can simply use "mouse over" and "mouse click" sensors with a and controller to detect click on planes and use it to play, pause or reset animation actuators.


Bevel an inset face with resulting clean edges When I bevel this Edge (which is parallel to X-Axis)

I always end up like this:

But actually I want this (without the faces that I colored blue)

I extruded the inset face without further scaling and moved it inwards the x-axis After extruding it a second time.
How can I achieve the beveling results in proper edges/faces?
Link to my .blend-file:
https://www.file-upload.net/download-14584958/bevel_problem.blend.html

Here's a somewhat shorter solution, but it still requires a bunch of work.
Create the bevel:

Use the knife tool to replace the missing edges:

Select and delete the edges you don't want, using dissolve edges:

and there you go:

This leaves you with all quads in the replaced area, but a concave quad can be just as bad as an n-gon.


Where is the render display mode setting in 2.8? In 2.7x and earlier we have a setting which controls where the rendered image is displayed when F12 was pressed.

The setting can still be set via the python api (bpy.context.scene.render.display_mode), but I can't seem to find it in the gui anywhere. Is it still there? If so, where is it?

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


How to fix bland-looking renders (Cycles) Does GPU affect the rendered image quality and level of detail? I just feel like my renders are bland and like, the glossyness on the materials just make it look like someone rubbed their shirt on a CD or something, it just doesn't look right.

I try to make my images bright as possible without getting crazy bright. There are no fireflies, but everything just looks bland overall.

Like, nothing looks crystal clear, i'm trying to say. I've seen PS renders, and Cycles renders, which both look more photorealistic.

I'm trying to keep a low amount of materials used, but, I think it has to do with light falloff or something? All I know is that the sharpness in the renders are terrible, the edges aren't that defined and it generally looks smudgy, not sharp and clear.

In short, your renders look plain because you're mostly using out-of-the-box settings.

You should experiment with creating more complex materials. It appears you are currently using mostly plain Diffuse with some simple glass for the table. Break out that Node Editor and tweak the noodles!
Real world materials are some combination of diffuse and glossy, not either/or. Many materials such as plastics, marble, and skin also have Subsurface Scattering. There is a lot you can study about materials, so I'll leave it at this for a start.

Diffuse only:

SSS / Glossy / Diffuse mix:

Try lighting with HDRi panoramas, like PGMath suggested. You can start by browsing here. When using environment lighting, it's best to enable Multiple Importance in the World context, and maybe boost it to 512 or 1024. Use .hdr files instead of .jpg whenever possible because they contain more color information. Better lighting in general will always help your scenes. Lighting is another a vast topic worth studying. Learning how to light with HDR images will take you far.

Lit with a single-color sky:

Lit with a single-color sky plus an emitter mesh:

Lit with an HDRi sky:

You could add some bevel to the edges of your geometry. In the real world edges are not perfectly sharp. Beveled edges catch light and add to the realism. Not sure if this goes against the low-poly style you're using, but it's something to try.

No bevel:

Bevel (with smooth shading):

Add some texture, even if it's subtle, and even if it's just procedural.
You can use your geometry to automatically create color variation, for example by using Pointiness output from the Geometry Node.

Pointiness can change the color where edges are at steeper angles:

Pointiness node setup:

Add some bumps to your materials. Small imperfections can add up to create lots of juicy details. Glossy maps or other types of maps that factor the mixing of two different types of materials are also very effective. The real world is full of little nicks, scratches, bumps, and cracks, so we expect to see such imperfections.

Before bump displacement:

After bump displacement:

Depth of Field can really enhance your renders and give realism. So can motion blur if you're making animations. Blur can be a good thing.
Fog is a great way to add depth to large scenes. Just don't overdo it.
Play with particles when appropriate. While the settings can be intimidating, particles are a good way to add lots of detail that would otherwise be impossible to create piece by piece.
Don't forget the Compositor. There are many color effects and other enhancements that are possible via compositing.

I may add more example images later. For now those are some ideas.


How to disable wireframe for a second 3D view when in edit mode? When I enter Edit mode, all 3d views show me wireframe. I want my extra 3D view to show me no wireframe when I enter Edit mode. It is possible in 3ds max by reference copy.

A quick workaround for achieving such a work-space might be to make use of the 'Render preview' option in viewport shading. Given that the speed at which the window updates will depend upon the complexity of your scene and your system specs. But it could be useful as it does hide the vertice/edge/face data that can be seen in edit mode. Here's a screenshot of a similar scene:


Convert particle system to animated meshes Blender 2.8 We know the code below works in 2.79. But trying it in 2.8x it will not take effect and no error will be displayed. Anyone knows how what could be missing there?

import bpy

# Set these to False if you don't want to key that property.
KEYFRAME_LOCATION = True
KEYFRAME_ROTATION = True
KEYFRAME_SCALE = True
KEYFRAME_VISIBILITY = True  # Viewport and render visibility.

def create_objects_for_particles(ps, obj):
    # Duplicate the given object for every particle and return the duplicates.
    # Use instances instead of full copies.
    obj_list = []
    mesh = obj.data
    for i, _ in enumerate(ps.particles):
        dupli = bpy.data.objects.new(
                    name="particle.{:03d}".format(i),
                    object_data=mesh)
        bpy.context.scene.objects.link(dupli)
        obj_list.append(dupli)
    return obj_list

def match_and_keyframe_objects(ps, obj_list, start_frame, end_frame):
    # Match and keyframe the objects to the particles for every frame in the
    # given range.
    for frame in range(start_frame, end_frame + 1):
        bpy.context.scene.frame_set(frame)
        for p, obj in zip(ps.particles, obj_list):
            match_object_to_particle(p, obj)
            keyframe_obj(obj)

def match_object_to_particle(p, obj):
    # Match the location, rotation, scale and visibility of the object to
    # the particle.
    loc = p.location
    rot = p.rotation
    size = p.size
    if p.alive_state == 'ALIVE':
        vis = True
    else:
        vis = False
    obj.location = loc
    # Set rotation mode to quaternion to match particle rotation.
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = rot
    obj.scale = (size, size, size)
    obj.hide = not(vis)
    obj.hide_render = not(vis)

def keyframe_obj(obj):
    # Keyframe location, rotation, scale and visibility if specified.
    if KEYFRAME_LOCATION:
        obj.keyframe_insert("location")
    if KEYFRAME_ROTATION:
        obj.keyframe_insert("rotation_quaternion")
    if KEYFRAME_SCALE:
        obj.keyframe_insert("scale")
    if KEYFRAME_VISIBILITY:
        obj.keyframe_insert("hide")
        obj.keyframe_insert("hide_render")

def main():
    # Assume only 2 objects are selected.
    # The active object should be the one with the particle system.
    ps_obj = bpy.context.object
    obj = [obj for obj in bpy.context.selected_objects if obj != ps_obj][0]
    ps = ps_obj.particle_systems[0]  # Assume only 1 particle system is present.
    start_frame = bpy.context.scene.frame_start
    end_frame = bpy.context.scene.frame_end
    obj_list = create_objects_for_particles(ps, obj)
    match_and_keyframe_objects(ps, obj_list, start_frame, end_frame)

if __name__ == '__main__':
    main()

Few changes in 2.80:

Objects are linked to a scene via a collection
'hide' has became 'hide_viewport'
You need to get the dependency graph and an evaluated object to have access to particles

Here is the corrected code (modifications are commented '2.80: something'):

import bpy

# Set these to False if you don't want to key that property.
KEYFRAME_LOCATION = True
KEYFRAME_ROTATION = True
KEYFRAME_SCALE = True
KEYFRAME_VISIBILITY = True  # Viewport and render visibility.

def create_objects_for_particles(ps, obj):
    # Duplicate the given object for every particle and return the duplicates.
    # Use instances instead of full copies.
    obj_list = []
    mesh = obj.data
    for i, _ in enumerate(ps.particles):
        dupli = bpy.data.objects.new(
                    name="particle.{:03d}".format(i),
                    object_data=mesh)
        # 2.80: link to objects in collection
        bpy.context.scene.collection.objects.link(dupli)
        obj_list.append(dupli)
    return obj_list

def match_and_keyframe_objects(ps, obj_list, start_frame, end_frame):
    # Match and keyframe the objects to the particles for every frame in the
    # given range.
    for frame in range(start_frame, end_frame + 1):
        bpy.context.scene.frame_set(frame)
        for p, obj in zip(ps.particles, obj_list):
            match_object_to_particle(p, obj)
            keyframe_obj(obj)

def match_object_to_particle(p, obj):
    # Match the location, rotation, scale and visibility of the object to
    # the particle.
    loc = p.location
    rot = p.rotation
    size = p.size
    if p.alive_state == 'ALIVE':
        vis = True
    else:
        vis = False
    obj.location = loc
    # Set rotation mode to quaternion to match particle rotation.
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = rot
    obj.scale = (size, size, size)
    # 2.80: hide_viewport instead of hide
    obj.hide_viewport = not(vis)
    obj.hide_render = not(vis)

def keyframe_obj(obj):
    # Keyframe location, rotation, scale and visibility if specified.
    if KEYFRAME_LOCATION:
        obj.keyframe_insert("location")
    if KEYFRAME_ROTATION:
        obj.keyframe_insert("rotation_quaternion")
    if KEYFRAME_SCALE:
        obj.keyframe_insert("scale")
    if KEYFRAME_VISIBILITY:
        # 2.80: hide_viewport instead of hide
        obj.keyframe_insert("hide_viewport")
        obj.keyframe_insert("hide_render")

def main():
    # Assume only 2 objects are selected.
    # The active object should be the one with the particle system.
    ps_obj = bpy.context.object
    obj = [obj for obj in bpy.context.selected_objects if obj != ps_obj][0]
    # 2.80: Get the dependency graph
    dg = bpy.context.evaluated_depsgraph_get()
    # 2.80: Get an evaluated object from it
    eval_obj = ps_obj.evaluated_get(dg)
    ps = eval_obj.particle_systems[0]  # Assume only 1 particle system is present.
    start_frame = bpy.context.scene.frame_start
    end_frame = bpy.context.scene.frame_end
    obj_list = create_objects_for_particles(ps, obj)
    match_and_keyframe_objects(ps, obj_list, start_frame, end_frame)

if __name__ == '__main__':
    main()


Is this a bug in the mirror modifier? So I added a mirror modifier to the cube as seen and I have inserted a loop cut.

Now I grabbed the loop cut and dragged it, the line circled in red still exists

Now I press control Z and now look at the red circle, suddenly you are no long able to see the loop cut line. Why is this happening. I updated Blender and this is still happening?

I believe this is intentional. Other actions can trigger this behavior as well, such as switching to object mode and back instead of using undo.

I'm no developer, but I think I may know why this is the way it is.

First, the point of wireframe view is (usually) to be able to see through your mesh. It can also be quite handy to observe the structure of your mesh as well. However, the wireframe view can get very complex very quickly, especially when dealing with complex models. To help simplify this, Blender hides certain edges from display that it determines aren't adding much to the overall wireframe view. In object mode, this occurs as well. It's not too extreme usually, and there is an option to force Blender to draw all edges in Object mode, which can be found in the display panel of the Object tab in the properties panel.

It appears that this process of hiding certain edges is executed for certain operations only. Some of these include using undo, or switching modes. When adding new geometry, such as wit the loop tool or subdivide, it displays all the new edges.

The reason that the edge is determined to be 'not necessary to show' is that it doesn't really add anything to the wireframe view, since it could technically be removed and the resulting mesh object would be the same when viewed with solid shading. Another way to understand when an edge will be drawn or not is to view your object in solid view. If you cannot see your edge, such as in your case, it won't be drawn in wireframe view. If you make the edge meaningful in terms of it's contribution to the structure of you mesh, such as by moving the edge up along the Z axis, the next time you update the mesh, such as by switching modes, it will be displayed.

So to directly answer your question, it isn't a bug. I don't really know why you would need the edge to be visible in edit mode when using the mirror modifier though. If you do really need the edge to be visible for some reason, you can always click the little 3 vertex button at the top of the modifier, and that will draw all of the edges/vertices/faces like the rest of the mesh, as well as allow you to select them.


joining two objects distorts procedural texture In blender I created a procedural marble material using nodes and no image textures and also using generated texture coordinates and it looks great in this image

but when I go to join the marble object to the brass object using ctrl j the procedural marble texture looks completely different almost like it stretched in the z axis
Is there a way to join these objects together without having the texture change or stretch
here is the node setup
and here is the blend

Right of the bat, I must say that your use of 'Texture coordinate' node as a texture/color input is not in line with its intended purpose. Anyway, the problem here is, all the texture input nodes (noise and voronoi ) don't have their 'vector' inputs connected. So by default, they take 'generated' as the texture coordinates input. And generated texture coordinates work based on the bounding box of the object.This is a problem in our case because when we join the objects, the objects bounding box (black lined box) increases as shown here..
Inorder to have similar marble effect even after joining, we have to scale the texture proportionately. This could be done using texture 'mapping' node under (Vector>Mapping). Here are the steps.

Before joining the parts, note down the marble globe bounding box dimensions.You can find these in properties panel (Hot key 'N') under dimensions section, while the marble globe is selected (as shown below).
Join the two objects.Now note down the dimensions of the new object.It will be as shown.
Now in the node editor for the marble material add the 'texture mapping' node as shown here (remember we need to scale the texture).
Now if you are wondering what the scale values in the red box are, they are basically the ratio of bounding box dimensions. For X & Y: 1.66573/1.11312 = 1.49645 and for Z :3.16439/0.680168 = 4.65237

This will fix the scale and get a result very close to your initial texture. You can fiddle with the 'location' values in the texture mapping node to get a result you like. Feel free to check the attached blend file below with the implementation.


Connecting the Endpoints of 2 Tubes while only moving one Hello Community,

i stumbled upon one very wierd problem on my journey to learn Blender.

I want to connect the ends of 2 tubes accurately together while not needing to move/rotate the red one.

I dont have very much expierience in Blender since im in the process of learning the program.

I tried stuff like closing the red tube with a face, moving the 3D cursor on that face so its centered in the opening. then i tried doing the same on the blue tube and use "snap selection to cursor". That did not work out since either it would deform the blue tube when just selecting the face, or moving the center of mass to the cursor. This also did not rotate the blue tube to align with red.

Edit:
This is what it should look like in the end:

I hope that someone can help me with this. Regards, Nick.

I'm illustrating this with triangular openings, because it's easier to see. We're going to move green to red. All moves in edit mode. Pivot set to '3D Cursor'

Starting with 2 skew open shapes. Snap set to 'Vertex', 'Active'. Create a new Custom Orientation : Ctrl Alt Space from 3 vertices selected on the target opening.

With all vertices of green selected, and a suitable vertex made active, free translate G and snap the active vertex to the corresponding vertex in red. These points will not move any more. Put the 3D cursor there: ShiftS > Cursor to Active

Free rotate green around until it's somewhere in the vicinity. This is only to make things easier to see.

Now we need a view straight across the plane of the opening in red. With 3 verts in the red opening selected, try the orthogonal views of them (ShiftNumpad1,3or7 and the CtrlShift variants) until you reach a view suitable for the next steps. Set snap to 'Edge', 'Active'.

Make a suitable vertex of green active, and rotate all in screen space, snapping the vertex to an edge of red in this view. We now have an edge in the right plane...

...but not aligned to its corresponding edge. So we now rotate all in the Custom orientation we created earlier , RZZ setting snap back to 'Vertex', 'Active'.

Now we have an edge in place. We want to rotate around it. Create a new Custom Orientation from the edge....

...and rotate around it, having made a suitable green vertex active.. (RYY)

...so it can snap to its partner.


How to animate slices through geometry with a different interior and skin? (e.g. like slicing a watermelon) I'd like to animate slicing through a object with a skin and interior. A simple example would be animating taking thin slices from a watermelon similar this:

While this is relatively easy when using simple geometry, it still required a lot of setup. This animation was built using boolean modifiers. There is a sphere for the exterior skin, a sphere for the interior, and two cubes used to create the slices by boolean intersections with the spheres. The sphere for the skin is slightly larger than the interior sphere. The cube for the skin is slightly offset from the cube for the interior. The setup is shown below,

This approach does not scale well when using more complex geometry or when using lots of objects.

I would like to scale this effect to include dozens or hundreds of objects.

Is there a simpler way to create and animate objects with skins and different interiors?

The blend file:

Depending on what you want your final outcome to look like you may not need to do anything more then a simple boolean modifier.

Here is a capsule with nothing more then a boolean modifier set to difference, and a animated cube as the target.

You can see it is possible to get a different material for where the boolean cuts the object. Here is how.

Add a second material slot to the object with the boolean modifier (this is the material you want for the "inside" of your object).

The target object (the object that does the cutting) also needs to have the same material.

That's all it takes to get a different material where the boolean modifier has cut.

You can read in further detail about how the Boolean modifier handles materials in the blender manual.


BGE Move Toggle Switch Sensor How can I create a "Toggle Switch Sensor", so when I press W to move a cube continuously on the Y axis, and S to stop the movement?
Can I do it from logic bricks?

It is possible to do this using a Boolean property and changing it using the toggle option, but it is easier to simply assign an integer a value. A Property Sensor set to pulse mode (to continually check to see if the value is still equal) and that activates your motion.

Blend file with working logic setup

![enter image description here][3]


Suggestion to rig & animate skin+bone+muscle at the same time? Good morning,

I have a human arm model with separate skin, muscle and bone meshes. Is there anyway I can rig and animate the human arm with skin, muscle and bone together? If not, any suggestions how to make this right and fast?

Thanks in advance :-)

If the skin mesh is low or mid-poly:

Rig the skin with bones (automatic or manual weight painting).
Control the muscles inside the skin with Mesh Deform modifier set to skin object.
Parent the bone meshes to rig bones, they do not need to deform.

If the skin mesh is highpoly (ie. scanned or sculpted mesh):

Build a low poly envelope around your arm.
Control both the skin and muscles through Mesh Deform driven by the low poly.
Parent the bone meshes to rig bones.

The Mesh Deform modifier will ensure that the muscles will stay inside the skin and will deform correctly. You can add shapekeys to the muscles and skin to make them flex and preserve volume.

It is difficult to weight paint multiple meshes to the same bones to have the same deformation. The automatic heat-driven weigh painting will fail on separate meshes - this works well only on volumetric auto-weight painting that Maya has.


Using Wave Modifier instances in Animation node In animation nodes is it possible to take an object data path output and run it with an instancer?
 I am trying to give a ghost type effect to the wave modifier on text.  Throught the wave of the text, I want to be able to see a slightly invisible version of where its going.

I can do what i want to an object, but the modifiers do not get instanced in animation nodes.

also it looks as if I am instancing it, however that is just the data from the wave modifier, as well as the wave modifier applied to the object. I cant get more than these 2 instances or manipulate the second instance (x,y,z space ect.)

Actions in Animation Nodes are abstractions of F-Curves, or possibly other data. So actions are not effective when it comes to animations that depends solely on data such as the current frame in this case.

If I understand what you want to do correctly, you can use the time offset parameter of the wave modifier. So, instance your objects using the Copy Full Object option to copy the modifiers from the source object to the instance, and modulate the time offset parameter using an attribute output node as follows:

Ghosting Value

What you can do is set the pass index of object to an arithmetic sequence, then in the shader, sample the object's pass index, and divide it by the number of instances as follows:


How do I override context for bpy.ops.mesh.loopcut? I am trying to use loopcut in a python script in Blender 2.71. I have tried using the following code from "Loop cut and slide using python script in blender":

old_type = bpy.context.area.type
bpy.ops.object.mode_set(mode='EDIT')
bpy.context.area.type = 'VIEW_3D'

bpy.ops.mesh.loopcut_slide(MESH_OT_loopcut={"number_cuts":10,"smoothness":0,"falloff":'ROOT', "edge_index":1})
bpy.ops.mesh.loopcut_slide(MESH_OT_loopcut={"number_cuts":10,"smoothness":0,"falloff":'ROOT', "edge_index":0})
bpy.context.area.type = old_type

I get the following error when the call to loopcut is made:

  RuntimeError: Operator bpy.ops.mesh.loopcut_slide.poll() expected a view3d region & editmesh

I have also tried overriding the context using the following:

import bpy

win      = bpy.context.window
scr      = win.screen
areas3d  = [area for area in scr.areas if area.type == 'VIEW_3D']
region   = [region for region in areas3d[0].regions if region.type == 'WINDOW']

override = {'window':win,
            'screen':scr,
            'area'  :areas3d[0],
            'region':region,
            'scene' :bpy.context.scene,
            }

bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.loopcut(override=override, number_cuts=1, smoothness=0, falloff='ROOT', edge_index=5)

But I get the same error.

I am able to call other mesh operators such as merge() and primitive_plane_add() successfully...

Any ideas as to what I'm doing wrong or not understanding?

Follow up

I tried tracing this by debugging the Blender source in VS. As far as I can tell, the context I'm passing in as an override gets passed to the C side of things as python specific context contained in a data pointer of some sort (I haven't investigated enough to fully understand what is going on). When the poll function gets called for the operator it gets the context indicating a TEXT space instead of a 3D view space so it fails. It appears that the override isn't happening. I'm not sure at this point if an override is intended to work in this case or if I'm just going about it the wrong way.

If I run my code as a addon instead of trying to run it from the TEXT window it works fine (no override needed). This doesn't address why I can't get overrides to work but at least I can work around it since I'm ultimately writing an addon anyway...

A custom context needs to be passed as positional argument, not keyword argument.

bpy.ops.mesh.loopcut(override, number_cuts=...,) # not override=override!

Macros follow the same pattern:

bpy.ops.mesh.loopcut_slide(override, MESH_OT_loopcut={"number_cuts": ...,})

What the Macro bpy.ops.mesh.loopcut_slide() specifically needs as context is a 3D View area (Area.type == 'VIEW_3D'), the window region of that 3D View (usually Area.regions[-1]) and the active object to be a mesh and in edit-mode.


Random black spot in mesh What is causing this offending face to turn black when viewed from certain angles? I think its flipped the wrong way but I'm not sure how to fix it.

No manifold errors pop up when I hit ctrl + shift + alt + m. It also looks completely fine when I disable the texture.

The offending face is highlighted above

Texture here

Blender version Used : 2.70

I know this is waaaay too late, but anyone finding the same problem may find:

Could be flipped normals.
I think here is actually a case of that spot not having the material on it. There are ways of adding multiple materials to meshes (some faces have different textures than others). Fix this by going into edit mode, select blank faces and add a material.


Is there a Unity coordinate system export option? I have created an animal-skull-like mesh in Blender.
In Blender, forward is negative Y.
This is what it looks like in Blender:

And this is what it looks like when I import the .blend file in Unity:

As one can see, the model appears upside down in Unity.
Once dragged into the scene, the model is rotated -90, 0, 0.
I guess this is some "hack" that Unity automatically applies to make it look well-oriented.
I have read about this problem, and the problem seems to be that Y is not up in Blender.
While it now looks correct, the rotation gives me headaches as I'm doing some calculations with it, and I expect a rotation of 0, 0, 0 by default.
I know that many people suggest to simply put the mesh into a container and work with the container only, but I would like to avoid this if possible.
I would like to ask if there is perhaps a special export option (for example for .dae format) that would make the model appear perfectly normally oriented in Unity without any rotation tweaks.
Thank you!

Most file export formats allow you to configure some kind of world orientation in the export settings. As you can see in the images below. .FBX, .DAE, .OBJ, and .PLY allow you to specify a "forward" and an "up" axis, and others like .GLTF have a checkbox to specify Y-UP. See below (examples are from .fbx and .dae):


fluid simulation showing and odd box instead of working Need some help guys...

Pressing object > quick effects > fluid give me this. Whats happening.
Version 2.79.4.

Not working here.. Tried with different shapes, new scenes, with and without subdivisions.. nothing works. Only shows this odd box instead.

HElp!

So that is actually the intended result. Let me explain.

Whats happened here is there has been a new object created, which is the "odd box" that you see. Your sphere is still there, you just cannot see it as it is inside of the box.

This box is what is know as the domain object. The domain is a boundary object that tells blender where fluid is allowed to be in your scene.

Your original object has now become a fluid object, and will behave like a ball of water (or whatever your settings make it behave like) when you run the simulation.

Now, if you just try and play the animation you will see that nothing happens. The reason for that is because the simulation has not been baked. Baking the simulation runs through the simulation and stores the simulation in memory so that it can be replayed faster. To bake a fluid, select the domain object, go to the physics tab of the properties panel, and about halfway down in that panel there will be a big button that has a water drop icon that says Bake on it (and the amount of memory it will take). Click on that, let it finish baking, and things should be as you expect. The bake may take up to a minute or so depending on your computer.


How to mirror a bone? I can't find the bone mirror option.

When I used Blender about two years ago the mirror option was tucked away in the rig/object panels, but now I see no obvious options.

How can I mirror bones in 2.7+?

Blender 2.79b

I've just discovered that if you mirror with the x-Axis option in the tool box, then you have to name each bone manually for both sides.
If you are rigging a human, a humanoid character or an animal, the best way is NOT to check the x-Axis option but follow the steps below:

Edit Mode, select all the bones to mirror on one side (arm, leg,
hand fingers)
Make sure each bone name to be mirrored ends with .L which means LEFT (e.g.: hand.L). This is vital!
Make sure the cursor is centred (Shift + C).
Your mesh has to be centred as well so that the cursor is placed at the base of it
Press W and select Symmetrize (duplication is automatic)
Your bones are now mirrored and the names automatically updated with extention .R (which stands for right).

You are done!


Why does my add-on work from the 'Add' menu in the header but not from Shift+A? My modal addon is using raycast, I've taken a function from Blender python templates: everything worked fine. However when I try to add my addon to Add menu (VIEW3D_MT_add), it starts to act weird: I think that the issue is with contexts, but I don't know how to solve this.

Here's a stripped down test code:

import bpy

bl_info = {
"name": "Test Addon",
"category": "Object",
"version": (0, 0, 1),
"blender": (2, 80, 0),}

class OBJECT_OT_my_addon(bpy.types.Operator):
    bl_idname = "object.my_addon"
    bl_label = "My Addon Name"
    bl_options = {"REGISTER", "UNDO"}

    def invoke(self, context, event):
      print(context.region_data)
      return {'FINISHED'}

def menu_func(self, context):
    # self.layout.operator_context = 'INVOKE_DEFAULT'
    self.layout.operator("object.my_addon")

def register():
    bpy.utils.register_class(OBJECT_OT_my_addon)
    bpy.types.VIEW3D_MT_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_my_addon)
    bpy.types.VIEW3D_MT_add.remove(menu_func)

context.region_data is needed for raycast, so this addon prints it out.

When I run it from Viewport Add menu, it prints out RegionView3D: everything is fine. However if I run it from Shift+A Add menu, I'm getting an error:

ERROR (wm.operator): c:\b\win64_cmake_vs2017\win64_cmake_vs2017\blender.git\source\blender\windowmanager\intern\wm_event_system.c:1486 wm_operator_invoke: invalid operator call 'OBJECT_OT_my_addon'

if I uncomment the self.layout.operator_context = 'INVOKE_DEFAULT' in menu_func, it starts working fine from the Shift+A menu and prints out RegionView3D, but! if I run it from Viewport Add menu it prints None and my raycast doesn't work.

The menu is in the header region

Put together this for prior version of this question. Can also get the region 3d view from space_data.region_3d or area.spaces.active.region_3d

When invoked from the header the region will be the header.

import bpy
from bpy_extras import view3d_utils
from mathutils import Vector

bl_info = {
"name": "Test Addon",
"category": "Object",
"version": (0, 0, 1),
"blender": (2, 80, 0),}

def get_v(context, event):
    scene = context.scene
    area = context.area
    region = area.regions[-1] # or search for region.type == 'WINDOW'
    space = area.spaces.active
    rv3d = space.region_3d
    print(context.region.type, rv3d == context.region_data) # See Output
    coord = event.mouse_region_x, event.mouse_region_y

    print(region, rv3d, coord)

class OBJECT_OT_my_addon(bpy.types.Operator):
    bl_idname = "object.my_addon"
    bl_label = "My Addon Name"
    bl_options = {"REGISTER", "UNDO"}

    def invoke(self, context, event):
      print(get_v(context, event))
      return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator_context = 'INVOKE_DEFAULT'
    self.layout.operator("object.my_addon")

def register():
    bpy.utils.register_class(OBJECT_OT_my_addon)
    bpy.types.VIEW3D_MT_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_my_addon)
    bpy.types.VIEW3D_MT_add.remove(menu_func)

if __name__ == "__main__":
    register()

The See Output print above from header menu

HEADER False

and from shiftA menu

WINDOW True

To sum up, only use context.region_data if you are sure you are in the 3D view window. Python console code, a is a view3d area

>>> a.type
'VIEW_3D'

>>> for r in a.regions:
...     r.type
...
'TOOL_HEADER'
'HEADER'
'TOOLS'
'UI'
'WINDOW'

Another method would be to use 'INVOKE_REGION_WIN' as the operator context, to make sure the 'WINDOW' region is used.


How to read blender API manual? I can't understand some type definitions like

  bones
  Type:   ArmatureBones bpy_prop_collection of Bone, (readonly)

link:
https://docs.blender.org/api/current/bpy.types.Armature.html#bpy.types.Armature.bones

What is this type?  Type should be simply one word. Why this one?

  ArmatureBones bpy_prop_collection of Bone

We suppose to get data based on the reference section like this one, but I can't find bpy.context.armature.

Can you shed a light one this?

  C.armature

Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
AttributeError: 'Context' object has no attribute 'armature'

Here are some variables also shown in manual, but I can't get them from my context. I find difficult to understand this manual. I want to show you, but
(I can't pose another picture. " You need at least 10 reputation to post more than 2 links?!" I just want to add another picture).
Anyway it is listed in the manual as:

bpy.context.bone

Type:   bpy.types.Bone

bpy.context.edit_bone

Type:   bpy.types.EditBone

bpy.context.pose_bone

Type:   bpy.types.PoseBone

It comes out that I can't find C.bone or C.pose_bone in console.
Then why are they listed in this manual?

Don't worry, learning to read an API is a skillset unto itself, and a non-trivial endeavor at that, so it's okay for it to feel daunting. Unfortunately, it's usually necessary.

To answer your first question, ArmatureBones is a member of armature. It is a container, but it's not a built in Python container like list or tuple. It's a Blender container of type bpy_prop_collection, and this instance of that type of container contains Bones.

This would be roughly equivalent to saying "Encyclopedia is list of Books."

To answer your second question, there are a number of different types of context. Without knowing which one you're referencing it's hard to guess. However, there is a screen context, and it makes sense that a screen doesn't have an armature. So if you're referencing one of those other contexts, it'd make sense for it to has no attribute 'armature'.

Furthermore, the context that does have an armature is the buttons context, which means it's probably not the armature you're looking for. I suspect that you're actually after bpy.data.objects["name_of_your_rig"].data as referenced in this answer over here.

I hope that helps!


Better Kitbashing and Asset Management flow, with multiple kits? Organize and browse assets? I have 2 Kitbash3D kits, which are huge and contain thousands of assets, plus I'm getting smaller Mech parts kits from an artist from ArtStation.
I want to create a workflow in which I can open the kits and just drag and drop them quickly in Blender to concepting and sketching.
What am I looking for

A good asset browser, where I could see the 3D models by thumbails, tags and more. Cinema4D has "Content Browser" which is exactly this (example).
Due to some kits and scenes being very big (for example: https://kitbash3d.com/collections/kits/products/aftermath) I would like to have those scenes open in a separate Blender instance or even open in the "Content Browser" and then just selecting the objects I want and pasting/dragging into my main Blender scene.

Problems

When I try to open a Kitbash3D file (2.2GB+), it takes minutes upon minutes, every time I open the kit, being discouraging to work (computer specs: 64GB ram, GTX 1060 16GB, i7-7700HQ 2.80GHz). And then, if Blender doesn't crash, the scene is extremely slow, making it impossible to sketch with the kit itself.

As a test, I installed the trial of every major 3D software, and they all managed to load quickly and I could drag and drop individual parts of the kits. But I don't want to use commercial software, I want to use Blender.

No way to paste data in Blender, no way to navigate external assets. I know a kind of Asset Browser is coming in 2.93, but it still will take some time and will require me to convert every possible model and asset to the Blender Asset Browser format.

Questions

How does one work with Kitbashing in Blender, considering the problems I presented?

For example, I found this video which shows how to Kitbash in Blender. But it takes into consideration opening a small kitbash library .blend file and then sketching in the file itself, and not loading additional assets or kits.

How does one have an asset library with Blender composing of models, textures and more? And what is your workflow to work with this asset library?

External solutions or addons are the way to go. My method was to experiment all the tools I could find that could deal with problems (1) and (2) described in the topic, with special care in which tool would allow to manage, browse and quickly drop big kitbashing kits into Blender.
The two final solutions that "passed the tests" are:
Connecter (https://www.designconnected.com/connecter/)
From their website:

Free and visual creative assets management for 3d, AEC and design professionals.

Connecter consists of two components:

A native Desktop software, where you catalog assets of all kinds, by folders, tags and more. It supports all 3D formats, including .blend files natively as well textures, materials, videos, and more.
A Blender add-on, which allows you to tag objects directly in Blender to be added to Connecter and also to RECEIVE INCOMING DROPS from Connecter, and this is where it shines in terms of asset management for Blender.
Video showing the process with Blender on Youtube.

Asset Management (https://gumroad.com/l/asset_management)
This is a paid Blender addon that adds a "Content Browser" into Blender, for all kinds of assets.

Its biggest advantage is that it's made for Blender only, so you can expect tight integration with all kinds of Blender objects and data.
The disadvantage is that you can't manage the assets outside Blender and you can't have other model formats (fbx, etc). You have to convert everything to a friendly Blender format.


does anyone knows how to make spiral clouds (hurricane) for a planet? Does anyone knows how to make spiral clouds (hurricane) for a planet? i want to make a planet with spiral clouds like in the image but here is the thing online tutorial on youtube show you how to make hurricane but sadly they don't work with planets because they use some kinda angle tricks meaning if you moved the camera you will break the illusion

You can use material nodes to create this spiral-like pattern on curved geometry. With cycles you can make use true displacement, which is important with light from acute angles.

Unwrap your object or use object coordinates if possible. With a distance node, we can create a gradient, starting at $0$ in the center and increasing outward. If we use this value as the angle for a Z rotation (with a mapping node) you can twist the texture coordinates into spiral.

These spiral mapping coordinates can be used as the input for any texture, for example a noise texture. I will use it to color a diffuse BSDF.

You can also use the diffuse texture to create a displacement of the surface by connecting it to a displacement node. Use a colorramp or rgbCurves node to shape the ridges and valleys of the displacement.

The reference seems to have some ridges and noise in its outer areas. We can replicate that with a radial stripe texture. Create a radial gradient first with the gradient node. Then multiply it by a whole number and use the fraction node. The result is a radial-symmetric gradient which goes from black to white any number of times. Use a colorramp or RGBcurves to shape the gradient and make it goes from black to white to black again. Hence, we get a seamless transition. I use a noise texture to create some variation for the initial texture coordinates.

There seems to be less noise in the center of the spiral. Add another distance node using the same input coordinates and shift its black-white transition outwards with a mutliply-add math node. I checked clamp to limit the highest number to one. Multiply the result with the previous stripe pattern and we get the stripe pattern, but with black in the center.

This is good, because we don't want to add noise to the center.

For the alpha channel, I used a duplicate of my original spiral noise with slightly different settings. Then I shifted the distance gradient and subtract it, making the alpha fade to black further from the center.

The complete node setup looks like this.


How can I copy the material assigned to grease pencil2.8 strokes to other strokes? I want to copy stroke material to another stroke.
Is that possible in Blender 2.8?

An answer can be found here: How assign different material to strokes in grease pencil mode
You can use the assign button in the material panel after selecting the stroke

To assign a material to several strokes (for example, set all blue stokes in black)

You can select the blue material in the materials panel, then select the black one in the drop-down menu

Or you can switch to edit mode, select the blue lines by clicking on "select" in the materials panel and then select the black material and click on "assign" (or you can go to Stroke menu -> assign Material)

But it is also possible to change the material of just one blue stroke.

Just select it manually in the viewport and then assign the new materials according to the same procedure as above ("assign" in material panel or via the Stroke Menu)


How to remotely run a Python script in an existing Blender instance? I don't want to use /Application.../blender -P my_script.py but I want to tell a running Blender process to execute a script.

Is there an existing method to tell a running Blender process to execute a python script?

For example using http://localhost:123/run_script=myscript.py

This can be done with sockets,
using the following examples you can run from the command line:

  From the first terminal:

blender --python blender_server.py

  From a second terminal:

python blender_client.py /path/to/myscript.py

This will execute /path/to/myscript.py in the first Blender instance.

You can send multiple scripts or run the client multiple times.

Note that this is a simple example, to get return codes in the client or make the port configurable... etc, this would have to be extended.

It could even be made to sent the entire script, or compressed Python byte-code over a network, none of this is especially hard. It just depends what you're after.

blender_server.py

# Script to run from blender:
#   blender --python blender_server.py

PORT = 8081
HOST = "localhost"
PATH_MAX = 4096

def execfile(filepath):
    import os
    global_namespace = {
        "__file__": filepath,
        "__name__": "__main__",
    }
    with open(filepath, 'rb') as file:
        exec(compile(file.read(), filepath, 'exec'), global_namespace)

def main():
    import socket

    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversocket.bind((HOST, PORT))
    serversocket.listen(1)

    print("Listening on %s:%s" % (HOST, PORT))
    while True:
        connection, address = serversocket.accept()
        buf = connection.recv(PATH_MAX)

        for filepath in buf.split(b'\x00'):
            if filepath:
                print("Executing:", filepath)
                try:
                    execfile(filepath)
                except:
                    import traceback
                    traceback.print_exc()

if __name__ == "__main__":
    main()

blender_client.py

#!/usr/bin/env python
# Script to send paths to run in blender:
#   blender_client.py script1.py script2.py

PORT = 8081
HOST = "localhost"

def main():
    import sys
    import socket

    clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    clientsocket.connect((HOST, PORT))

    for arg in sys.argv[1:]:
        clientsocket.sendall(arg.encode("utf-8") + b'\x00')

if __name__ == "__main__":
    main()


Can't use image as world texture I want the background of my scene to use a sky texture I have setup the nodes to use a image texture but instead of unseeing the sky texture I added it just looks white. Here is my setup:

How can I fix this?

If you are trying to use the image as a sky/panorama background, you probably want the Environment texture node instead of the Image texture node.

The environment node will let you use panorama projection types (Mirror Ball and Equirectangular) This is the only difference between the two nodes, see What are the differences between an environment node and a image node?.

However, if you really want to use the Image node for the sky/background (e.g. to have an image stuck exactly behind the camera, always in the same orientation), you will need to adjust the coordinates with a Mapping node:

Note that to edit the world nodes, you must ensure the little globe icon in the header is selected.


Why are my "tools" stuck to the origin? I am a Blender noob with a (hopefully) quick question. When I move, translate, or scale an object, the tools used to interact with it do not move with it, and instead remain stuck at 0,0,0:  What did I do to make this happen, and how can I change it back?
Thanks, Ian

You've set your "Transform Pivot Point" to "3D cursor." Change it back to the default "Median Point"


Anyone know a technique for blending these two smoothly? It's a sword handle attaching to guard I tried bridging, it kind of works but ruins the normals, I also tried extruding and the "to sphere" function. That was even worse.
Thanks.

For something like this, I would recommend a progressive reduction in the number of faces by using extrude and merge operations (Provided your starting cylinder has an even number of faces).
Start by extruding a section of the cylinder. From here, select neighboring pairs of points around the perimeter, and merge them to their midpoint by pressing M and selecting "at center".

Once all the pairs are merged, extrude the bottom face and do it again.

Do this as many times as is necessary until the bottom face only has 4 points. Note - by this point the bottom face will have "shrunk" a bit relative to the rest due to the merge operations. You may take this opportunity to scale it back until it's closer to the size of the mesh above it.

From here, you can extrude the bottom face again, and then scale it to fit the piece you are trying to connect it to.


How to get the absolute path? Is it possible to force uncheck with python the "Relative Path" checkbox in the filebrowser?

You need not reinvent the wheel, you can use functions from menu File -> External data -> make all
 paths relative (absolute). The python code of this comands are:

bpy.ops.file.make_paths_relative()

bpy.ops.file.make_paths_absolute()


Set active bone in pose mode from Python script I'm trying to use the function bpy.ops.pose.constraint_add() on bones through a script, but stupid thing is that I can't find how to set the bones as active ones which is needed to call this function.

Set bpy.types.ArmatureBones.active

It's a matter of setting the active bone of the armature (the data part), and hence the active pose bone.

Python console code. An armature object is active and in pose mode. Long windedly sets the active bone.

>>> C.object
bpy.data.objects['Armature']

>>> C.object.data
bpy.data.armatures['Armature']

>>> C.object.data.bones["Bone"]
bpy.data.armatures['Armature'].bones["Bone"]

>>> C.object.pose.bones["Bone"]
bpy.data.objects['Armature'].pose.bones["Bone"]

>>> C.object.pose.bones["Bone"].bone
bpy.data.objects['Armature'].pose.bones["Bone"].bone

>>> C.object.data.bones["Bone"] == C.object.pose.bones['Bone'].bone
True

>>> bone = C.object.pose.bones["Bone"].bone
>>> C.active_pose_bone
bpy.data.objects['Armature'].pose.bones["Bone.001"]

>>> C.object.data.bones.active
bpy.data.armatures['Armature'].bones["Bone.001"]

>>> C.object.data.bones.active = bone
>>> C.object.data.bones.active
bpy.data.armatures['Armature'].bones["Bone"]

>>> C.active_pose_bone
bpy.data.objects['Armature'].pose.bones["Bone"]

Use bone.select = True to have bone both active and selected.

Note There is no need for the operator.

Example adds a copy rotation constraint to each selected pose bone.  The cube is used as the constraint target.  Run script in pose mode, else context.selected_pose_bones will be None

import bpy

context = bpy.context
scene = context.scene
cube = context.scene.objects.get("Cube")

if cube and context.object.mode == 'POSE':
    for pb in context.selected_pose_bones_from_active_object:
        # use if already existes, else create
        cr = (pb.constraints.get("CubeRot")
                or pb.constraints.new(type='COPY_ROTATION'))
        # set some properties
        cr.name = "CubeRot"
        cr.target_space = 'LOCAL'
        cr.target = cube


Data Transfer modifier: can't get it to work trying to make slightly smoothed corners with Data Transfer, but i accomplish nothing besides making two faces look more flat than they should be. several tutorials show how to do it (this one, for example) and i think i've set everything correctly, including Adding Custom Split Data, but i still can't get the right result.

here is .blend file.

and here's a screenshot of modifier settings:

extra info: i have latest stable version of Blender - 2.78c. tried some several years old plugins and they gave no results. also attempted to install blend4web's vertex normals editing tool, but i couldn't even see it in the plugins list. any help will be appreciated.

thanks to @lemon 's hint i managed to find a solution and it was quite simple:

source and target objects must overlap!

they must sit at the same spot, just like for normal baking, and moving either object even slightly will noticeably change the result. by the way, it is not necessary to keep source object visible.


Can't find where to change add primitive operator properties Though I am new to Blender, I am not new to modeling. Still there is one thing I am not finding in Blender 2.8 beta, and it's frustrating the hell out of me.

How the heck do I change the properties of a primitive during creation.

In Blender 2.79 I see the option to do this, during creation, in the bottom left corner of the screen, but I do not see it in 2.8.

For example, with the selector icon chosen, which seems to be the default upon opening, I go to Add > Mesh > Cylinder. The cylinder shows up on the screen, but I cannot find the properties to change the number of vertices/facets, the radius, the height, etc.

Am I doing something wrong?

Thank you,

Jim

Please see below. The properties you are looking for are under the drop-down menu in the bottom left corner of the viewport. In 2.79 the default shortcut was F6, but it does not work in 2.8.


Weight paint substraction not working? Blender 2.8 i am trying to remove weight paint from a vertex group.
Adding weight works just fine but when i change the weight scale to 0.0 it does not remove weight. What am i missing or how else do i remove weight paint? (I am using Blender 2.8)

The Brush is set to Add by default.

In the top left corner go to View > Tool Settings, now you can change the Brush Mode to Subtract.


Generate Mesh Using Boolean Modifier Over Time I want to create a mesh that is the "union" of an object at it's various locations in the timeline.

For more clarification, here is a simple example. If I were to start with a UV Sphere, and animate it to move right 5 units...then apply this modifier that I'm looking for, I would expect the resultant mesh to be a "capsule" (long pill shape) that is 5 units long...because it is the union of the UV Sphere at all it's locations in time.

Is there any way to do this in Vanilla Blender? If not can someone point me in the direction of a plug-in that would allow for this? The end goal is to use this on a rigid body simulation to generate a mesh.

Array with end caps

Example using default cylinder and UV sphere. (matching loop vert count)

Add a UV sphere in edit mode select half and P separate by selection.

Add the default cylinder with no ends (None) Add an array modifier.  Use the two sphere halves as end caps.  Make the relative offset in z (arbitrary, chosen since it is  default alignment)

We now have our capsule shape... but not the ball.

Add a shapekey to the cylinder, and make this zero scale in Z. SZ0  Now whenever the influence of this shapekey is 1, the whole thing will be a ball, no matter what the count is on the array modifier.

Put together quickly from default primitives as a proof of concept.  Once the shapekey is < 1 the length of trail can be adjusted using array modifier, as well as shapekey, depends on the curliness of the path.

Re making a motion trail

Could script this to make a motion path based on the transform of the object.. Could be tricky re handling bounces etc.


How do I give a keyframed object a bit of vibration/shaking when it's at the destination point? I made a robot with moving parts on it's body but when the parts move from the starting point to the ending point, I wanna give it some vibration like it moved with a certain force. How can I do this?
edit:
In the picture below u see a dummy wheel keyframed going to the left. But when it snaps in place on the stop point I want it to shake a bit, a bit of knockback, like it moved that way with a force but suddenly stopped.
edit2:
Look at youtube video I added below. The rotorblades are spinning (moving) with a certain force but when they snap in place, it keeps shaking for a split second, that's what I need.
rotorblades snapping link

To add to Chris' answer, you can use a Noise modifier in the Graph Editor. Create your animation, open the Graph Editor, select the bone (or object), select the track where you want the vibration to happen, for example here the Z Rotation track, ShiftH to hide the others, and in the N panel, on the right of the Graph Editor window, create a Modifiers > Modifier > Noise. Now if you click on the Restrict Frame Range you can decide in what range of frames the vibration will happen. Here is what it can give:

Another solution, if you select your track, select the vertex or vertices where you want the effect to begin and press T (or header menu > Key > Interpolation Mode) you can create a Dynamic Effects like Bounce or Elastic (the settings are in the FCurve tab):

If these solutions are not satisfying I guess you need to do it manually...


Why does model look thinner in Cycles than in Eevee? My model looks ok in shader editor and Eevee but "thinner" in Cycles. Seems like someting wrong with camera settings and perspective but I use the same camera for both renders.
Please help me to understand why and how to fix it.

It isn't actually thinner. This is the lighting. Adjust your world background color, sun lamps, and any other lamps, reflectors, and mesh lights you may have in the scene to get a better result. My advice would be to place a sun lamp pointing directly above your model for best lighting, with the strength set to 1.5.


Using Animation Nodes with the expression node with equation starting with x(n+1)= I'm trying to animate the variables for various strange attractors using animation nodes and it's expression node.

The equation I'm trying to animate.

I can create the equations and animate the a variable in Octave / Matlab (but as you can see it's not a great image see animated gif below nor does it have the "whispy shear stocking" look).

I originally thought of using Blender 2.8 and using a python script.  See original question:

Then realized that animation nodes has an expression node that may make it easier to animate and allow the changing of the expressions without knowing how to code python. Video Tutorial

I can create part of the expression but I'm not sure how to get the Xn+1, Yn+1 values to work with the expressions node.

Background on the Clifford attarctor.
Some more info with Python code

I've attached a blend file with a working parametric Epitrochoid equation.
 I'm just not sure how to get it to work with the Xn+1 and Yn+1 values

I'm using Blender 2.8 in Ubuntu 18.04 running Animation Nodes 2.1.4

It is like an iterative process to calculate the equations you have mentioned in your question. Thus, at step 1 (n = 1), we supply some initial value for (x, y) say (x0, y0) and calculate the equations or (x1, y1) then in step 2 (n=1), we will use the previous (x1, y1) to calculate the equations (x2, y2), and so on. Therefore, we have to store the calculated value of (x, y) during each iteration step.

In animation nodes, the loop node has feature is called Reassign (see Advanced Node Settings in the N-panel) to store data per iteration that we can use in the next iteration. In this image, I have reassigned (or reinitialize) the vector input that acts as x(n), y(n) for the next iteration i.e., x(n+1), y(n+1).

Then animate the (a) parameter using Animate Float Node,

Here is Blend File: