text:
Magnetic Spheres
I would like create a simple animation; Two spheres at a given distance each with a magnetic moment such that they are attractive. i.e. that when you simulate/animate, the spheres should come together, slowly at first and then rapidly. I imagine this should be possible with the physics engine.
I tried going to 'Physics' section for each object and create a 'Force' with a 'Point' shape, along with a 'Sphere' Falloff to the third power (Both Z). Also, reading through the manuals, it seems that both objects would need to be 'Soft Body' in order to interact with environmental forces, is this correct?
Overall, It doesn't seem that my program is working, and I would like to actually use the physics engine to create this interaction instead of just modeling the motion, if possible. Any and all help is greatly appreciated. Thank you!

This question asks almost the same thing, but the answers there are a bit lacking in detail of how to accomplish what you're trying to do. Take a look at it anyway to see if it helps.

The answer to this question: http://blender.stackexchange.com/questions/42109/electromagnetism-simulation provides similar behavior. What is missing is the north/south pole behavior.

@EdTate I just noticed one of your questions on using 'Charge' under physics. (http://blender.stackexchange.com/questions/40513/how-to-have-rigid-bodies-and-charge-fields-interact) Did you have any luck in resolving that issue?

I believe I found the path to start this sort of simulation/animation. I'm still working on it a bit.
If you want to create an object that has the appeal of attractive and repulsive forces, it seems that adding a 'force field' within the physics tab of the object does not result in the desired motion. I've found that if you have an object AND a force field separately (and make them have identical centroids), you can use the parent/child hierarchy to obtain the desired affect. The key is that the rigid body object must be the parent, so that the force field will follow the parent.
Shown is a picture of two cubes with force fields attached as children. The force field(s) were given the following values: Strength -> -5 (attractive), Fall Off Power (shape = sphere) -> 1, and also direction was set to 'Both Z'. Also, for the object, a Rigid Body Mass -> 0.01.
This has the beginning of the desired affect. Please feel free to add comments to this answer if you have any further insight into the matter. The next goal is to correctly add a north pole and south pole to the Magnet so one can simulate the desired effect under rotations, etc. Thank you.

I know I asked for sphere's initially and the answer uses cubes. It was just simpler to create, play with, and test. But should be the same concept. Thank you.

Kudos for staying within the Physics engine and trying to add multipole moments!


text:
Why does my model reorient itself when I render it?
It was facing in Y+ direction, so i turned it to X+ direction so that it fits my scene, but when i render it turns back around it sound stupid but i am not joking!
Here is the File

Press NumPad 0 to enter camera view. Move and rotate the camera to change the rendered view. In the properties panel (shortcut N in the 3D window) you can lock the camera to the view, to adjust the shot.

Does not address problem.

source: Stack Exchange

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

sort: votes


text:
Can F-Curves be used to define interpolation between keyframes?
What I'm trying to do specifically is animate a punch. With the default Bezier curves, the interpolation between the "wind-up" and "contact" poses gets eased in AND eased out. This effectively makes it appear that the punch is being pulled. The character accelerates into the punch just as he should, but then begins to slow again right before contact. I'd like to have the interpolation such that he eases in and then continues to accelerate through. In principle I know how to do this with the graph editor, but this action involves a shift in balance so almost every bone in the body changes position between poses, and I really don't want to tweak the graphs for each property on each bone individually. Is there a way to fine-tune keyframe-level interpolation in Blender? Perhaps by animating a single property that represents a 0-1 weighting between poses? I feel like I could probably hack something together with drivers, but I'm really not sure how to do that in the context of poses and figured there might be a better way anyway. What's the proper approach in a situation like this?
EDIT: One solution I've found is to use a Python script to automatically position the left handles of all selected keyframes to sit on top of their respective control_points. This basically achieves the effect @cegaton was suggesting.
import bpy

C = bpy.context.object

for fcurve in C.animation_data.action.fcurves:
    for kf in fcurve.keyframe_points:
        if kf.select_control_point:
            kf.handle_left = kf.co[:]

I'd consider this a quick hack though and not really resolution to the original question. I'm still wide open if anyone has any other ideas.

@cegaton Thanks, but already tried that. The interpolation mode you choose for a keyframe gets applied to the interval between the selected keyframe and the one immediately following it. There doesn't seem to be any option to apply different modes to different parts of the same interval, or to the "back and front" of a keyframe.

Maybe using the Breakdown Tool could help you to find the right curve / pose quicker? It is one of the In-Between functions Blender has, see the section In_betweens here: https://www.blender.org/manual/de/rigging/posing/editing.html.  The workflow would be like this:
Set start and end keyframe of your pose. So the moment when the punch starts and the moment after the hit. Then scrub to a frame in between the two. With the very sophisticated example here it looks like this:

If I take my example, the X F-Curve should have a keyframe value lower than what it currently has. Or in other words, the pose should be closer to the starting pose, than to the ending one. The breakdown tool allows you to do just that: In the 3D Viewport, hit Shift + E, and then move the mouse left and right. The extent of your 3D Viewport acts as a slider, so if you move the mouse to the very left, you're at the starting pose, on the right at the ending pose. Your model will now deform either towards the starting pose, or towards the ending one. In your case, you wanna go closer to the starting one. After clicking, you can add a keyframe for this pose (or if you use Auto-Keying, that keyframe has been created already):

It's your choice now if you want to set the end value to vector (can be done in Dope Sheet or F-Curve Editor:

If you're not happy with the pose, go to the same keyframe and use the breakdown tool again.

Wow, thanks @aliasguru! Nothing like what I originally had in mind, but playing around with this I'm getting some very good results. Definitely will be using this a lot in the future!

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


text:
Problem with the "Use Object Material" setting for Dynamic Paint
I'm attempting to use Dynamic Paint with the Image Sequence setting.  I've followed all the necessary steps and I also chose to enable the setting Use Object Material.

The material should be green, but the .png files that are produced just have the default light blue.

This problem is only with this particular Blender file.  I can't reproduce it a new file.  The scene I created was very complex with many objects, but I've deleted all the objects in the scene and started with a new canvas, but the problem persists.
Surprisingly, if I open a new Blender file and append the brush object and the canvas object and hit Bake Image Sequence, it works fine.

Here's the Blender file, if you open and hit Bake Image Sequence, you'll see the problem.  Any ideas?  Could this be a bug?
EDIT: A bug report was submitted on this and it has been marked as resolved.

I'm thinking the file is corrupt as it ignores the material setting when painting, creating a new material doesn't work but changing the brush colour does change the colour drawn, whether use material is on or not. Even deleting the brush and canvas and creating it again doesn't help.

Interesting, I didn't realize Blender files could become corrupted.  Yes, I will change the brush color, although in my original scene, the brush object also had some texture which I wanted to appear on the canvas.

I would submit the blend file with a bug report. The problem is unique to that file (or at least the steps to re-produce it are unknown) but it is reproducible with the file and might be fixable, they may work out how it got there or just how to make blender work with that situation.


text:
Importing Scipy: "cannot import name oldnumeric"
I have Blender 2.69 for Linux 64bit (using Ubuntu 13.10).
I followed the method detailed by @BNewmark to get SciPy working with Blender.  I already had SciPy (version 0.13.2) for Python 3 installed from Ubuntu's repositories.  The steps I followed were:

Opened a terminal and entered python3.
Entered import scipy; print(scipy.__path__) which gave the output: ['/usr/local/lib/python3.3/dist-packages/scipy']
Exitted Python and copied this directory to the site-packages directory (where NumPy was by default)

cp -r /usr/lib/python3/dist-packages/scipy ~/blender-2.69-linux-glibc211-x86_64/2.69/python/lib/python3.3/site-packages/

Opened Blender, opened a Python console window and entered import scipy

The error I got was:
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "/home/garrett/blender-2.69-linux-glibc211-x86_64/2.69/python/lib/python3.3/site-packages/scipy/__init__.py", line 77, in <module>
    from numpy import oldnumeric
ImportError: cannot import name oldnumeric

This page talks about how NumPy is bundled with Blender (on Linux) and they show "the CMake install command that is used to get rid of extra files, reducing numpy's compressed size" which includes getting rid of oldnumeric.
I can import NumPy without problems. I also tried deleting Blender's bundled NumPy (version 1.8.1) and replacing it with my system's NumPy for Python 3.3 (version 1.8.0), which include oldnumeric, following similar steps as above. But then I couldn't import SciPy or NumPy, which both gave the error ImportError: cannot import name multiarray.
Any ideas?

what happens if you delete the entire ~/blender-2.69-linux-glibc211-x86_64/2.69/python/ directory? It should force Blender to use the system Python installation.

@MikePan, deleting that directory causes Blender to not start!  Going to the directory and typing ./blender gives the error, Fatal Python error: Py_Initialize: Unable to get the locale encoding ImportError: No module named 'encodings' Aboted (core dumped)

Huh, never mind that then. Deleting it on Windows works, but I just tried it on the Mac, seems to crash out same as Linux.

Multiarray is a compiled module, if you cannot import it, I suspect the version you have isn't compile for the particular platform (OS, bitness or python version)

+1. This is a GREAT question. If there's no answers I might put a bounty. I looked at your profile and saw you followed a proposal for a Materials Modeling Stack Exchange. If you don't mind another attempt at a Materials proposal, would you be so kind to commit to this? https://area51.stackexchange.com/proposals/122958/materials-modeling?referrer=ZTUyZWY5OTQ1NDI4ZGVlMmU5MzM0ZThiZjNhOTRkYWFlMTA1NjM0OWEzOTZhYzlmMTBlNWQ4ZmIzYWE3MWFkN-4At28O9gekwyERVbYPhFIPwyHiajfB5BeMyrZKJaYV0  It started slow but lately it's been booming with 5 commitments/day and very soon it will reach 200.

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


text:
Add keyframe to a scene property
Using Python to add a keyframe to an object seems easy (see here or here), but how can I add a keyframe to a scene property?
As a concrete example, take bpy.context.scene.gravity.

Even though the examples linked are to keyframe an object, there is in fact no difference and the same methods apply to both.
Simple:
scene = bpy.context.scene
scene.keyframe_insert(data_path="gravity", frame=10.0)

Advanced:
scene = bpy.context.scene
if not scene.animation_data:
    scene.animation_data_create()
if not scene.animation_data.action:
    scene.animation_data.action = bpy.data.actions.new("GravityAction")

fcurve = None
for fcurve in scene.animation_data.action.fcurves:
    if fcurve.data_path == "gravity":
        break
if not fcurve or fcurve.data_path != "gravity":
    fcurve = scene.animation_data.action.fcurves.new("gravity")
keyframe = fcurve.keyframe_points.insert(frame=10.0, value=20.0)
keyframe.interpolation = "LINEAR"
#keyframe.handle_left
#keyframe.handle_right


text:
Can’t add a torus with a large radius
Every time I try to add a torus with a major radius of 1317ft (401.42M), the major radius defaults to a value of around 984ft (300M).
I also tried doing this by adding a torus with a major radius of 131.7ft (40.14M), or 1/10th scale and then increasing the scale in “Item” to 10 in the X-Y-Z fields, but then the ability to scale tops out at around 5 in the X and Y fields and only will allow a scale value of 10 in the Z field.
I suspect the Z direction allows this value because the minimum radius I’m trying for is only 20ft (6.09M).
I’ve also tried starting from scratch by changing units to meters, no joy, then starting again using feet, and lastly starting over again using inches.
Still can’t add a torus without the major radius topping out at around 300M.
I also reset the clipping distances. That didn’t help either.
Suggestions?

There are hard and soft boundaries for the values. The current implementation of the torus has indeed them for the major radius. It's all fine. You should instead be able to scale in all the XYZ axis the object. Are you sure it is limited to 5? I cant reproduce this behaviour.

Thank you Carlo, I’m at work at the moment, but when I get home I’ll try doing this again (adding the torus at 1/10 scale, then increasing the scale to 10 in the XYZ fields of Item). This time (assuming I have the same issue) I’ll post screenshots as I go.

Strange. Now I can’t reproduce the behavior.I started again from scratch and simply keyed in all the values at 1/10 what I wanted in the finished model. Then I just set the XYZ values to 10

Strange. Now I can’t reproduce the behavior. I started again from scratch and simply keyed in all the values at 1/10 what I wanted in the finished model. Then I just set the XYZ values to 10 in the pop out window under “Item”. LESSON LEARNED: If a Torus won’t come in as large as you need it- key it in at 1/10 the size you want it to be, then go to the pop out tab at the upper right of the display window, make sure only the Torus is highlighted, click on the Item tab, and set the XYZ values for scale to 10, and your Torus is now effectively the size you need it to be.

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


text:
Creating an Array Rotation
I'm having trouble creating a Rotational Array. First I transform the object, a UV Sphere, along the Y axis to the radius I want the array to have. I add an Empty at the world origin. I choose the UV Sphere, and start to add an Array Modifier. I set the offset to 0,0,0. The number of copies I set to 8. I enable Object Offset and choose the Empty. And this is where the problem starts. I had planed to then rotate the Empty by 45 degrees, but before I can do that 8 copies of the UV Sphere appear in a straight line with the first copy centered on the vertical axis of the Empty. What am I doing wrong?

This seems only to work when the sphere does not have a transformation on it. Try moving the sphere in edit mode instead of in object mode.

The array object need to be away from its origin.
un-tick Relative offset, tick object offset in the Array modifier tab.

If you want to have an Array going around a rotation you need to create a Curve that it can follow. For example you add a Circle.  On your Array Modifier you only set the Count and enable the Relative Offset the other fields stay at default. Now you add a second Modifier which is called Curve and select the added Circle as Object.
Here is an example file:


text:
How do I import 3rd party decal packs into decalMACHINE?
Man this is frustrating. I've spent an entire day on this and wound up nowhere. I purchased some decal packs at blender market, but I can't figure out how to import them into decal machine. I read the answer to Decal Machine Decal import, but that was no help whatsoever. For one thing there is no "refresh" button in decalMachine's prefs. There's a "reload button" but that didn't do anything either. And although the person asking the question at least seemed to know what folder to copy things to, I'm just too dumb to know that. And sentences like "Accept. Open a file browser, Hold Shift to open the file, Alt to browse  containing directory" that pops up in decal machine's prefs when you hover over the import file button mean nothing to me. "Hold Shift to open the file"? WHAT file? Pack_2_png.zip? PSD.zip? Letters.zip? Which file? And what's this about "Alt to browse containing directory"? What does that even mean? Could someone please pretend you're talking to a four year old and tell me, step by step, how to preform the import once I'm in decalMACHINE's prefs (I at least know how to get to the prefs). But do NOT skip steps or assume I can understand terms that someone new to Blender might not understand. I would be eternally, and sincerely grateful. I'm using decalMACHINE 1.9.4

The folder that was referred in that question is the DecalMachine assets folder, which by default is on C:\Users\[username]\AppData\Roaming\Blender Foundation\Blender\[version]\scripts\addons\DECALmachine\assets\Decals\, or the one you've set under Assets on DecalMachine's preferences.
The folders with "uuid" files are your decals. You can either drop them to the "MyDecals" folder or make a separate folder under the path above.
It also took me a while to find this. Hope this helps!


text:
Cannot achieve the same result as the tutorial, mine had some shading issues
i am following some tutorial and i followed every step in the tut, but mine mesh came with a lot of shading problems. The edge are not smooth at all.
Can someone help me out ? I set the smooth shading already and bevel modifier as well. Even tweaking the settings cannot fix it.

so which one is your version? what tutorial are you following? could you please share your file? https://blend-exchange.giantcowfilms.com/

The nasty one(second) is mine. And i am following Creative shrimp's hard surface modeling tut, which i purchased from his website. I will share my file now.

Having difficulty in uploading blender files. I tried blender-Exchange, it always fail..

you need to copy paste the url of this page before uploading


text:
Can I merge objects without messing up their modifiers?
I have made a character, through several different objects, using different modifiers for each of them. Is there a way that I can combine them into one object, without having the modifiers screwed with?

No. You will need to apply the modifiers

Although some modifiers can be applied to specific parts of a mesh via vertex groups, when you join them you will find that the active object's modifiers always overwrites the others.
You will need to apply the modifiers before joining the meshes, or add them afterwards using vertex grouping. Sadly you will not be able to edit the modifiers after applying, but they will not be messed up by joining.

Actually you can apply some modifiers to specific mesh sections by means of vertex groups etc. Mask, displace to name a few.


text:
Why is my cycles render still grainy on 1000 cycles?
I recently made a desk lamp model and set the samples to 1000 for an overnight render upon waking up the image was still rather grainy is this something in my blender that isnt set right or something in the scene itself?

It's hard to comment on the scene when you don't attach/share the blend file. Did you enable multiple importance sampling for the lamp?

Im still very new to blender and i dont know how to enable multiple importance sampling you can download the blend file here. puu.sh/kBF0O/3f248d5a45.rar

multiple importance is a settings > surface option in the cycles material panel (not only for lamps)

I see a few things you can improve:

You can use much less polygons. The higher the polygon count, the longer the render will take. Try searching for tutorials that use subdivision ("subdiv") modifiers.
Use a cube instead of a collection of planes. There are gaps between the planes, which makes it harder for Blender to analyze the scene. Using a gapless cube will improve the rendering.
Reduce the number of light bounces; this is what I used in the render below:
Use GPU rendering if you have an NVidia or AMD video card:

Reduce the number of samples (because by now you don't need that many).  I used 100 samples instead of 1000 in the render below.

This is the result (except the polygon count, I kept the lamp model the same), which was rendered in just under a minute on an NVidia Geforce GTX 970.

Thanks very much how do i set my render to GPU? and how do i lower the polygons?

I've updated my answer to show some settings & panels. As for lower polygon count, a common approach is to model low-poly and then use subdivision surface modifiers to get smooth surfaces. Reducing polygons in a clean way is tricky, so it's best to start low.

I can't access the .blend to check, but I suggest one more point :

model at real scale


text:
Set origin to bottom center of multiple objects
I have a lot of 3D objects of various sizes, shapes in blender 2.76b and I would like to set the origin to the bottom center of the objects bounds.
I cannot select the bottom edge and snap to cursor etc as each shapes edges are in different X/Y positions.
Is there a script or tool that will allow me to set the origin to the lowest edge z position?

If I'm not mistaken what you're asking for is a way to set an object's pivot to the center of the bottom of its bounds in world space, is that correct?

Yes, that is 100% correct

related: http://blender.stackexchange.com/questions/16107/is-there-a-low-level-alternative-for-bpy-ops-object-origin-set

Move the origin to bottom of all selected mesh objects.
EDIT updated for 2.8.  See prior revision for prior.
Object mode script. Moves origin to bottom of mesh, leaving object in place. Pass the matrix world to move origin to global z.

Looks at the 8 coords of objects bounding box.  The bounding box is
in local coordinates. To change space pass a matrix. eg the matrix
world of the object will determine lowest z in global space.
o is the bounding box center. Set o.z for new origin from min z of
bounding box points.
Transform all vertices by -o
Move the object back globally by o to keep the object in place.

import bpy
from mathutils import Matrix, Vector

def origin_to_bottom(ob, matrix=Matrix()):
    me = ob.data
    mw = ob.matrix_world
    local_verts = [matrix @ Vector(v[:]) for v in ob.bound_box]
    o = sum(local_verts, Vector()) / 8
    o.z = min(v.z for v in local_verts)
    o = matrix.inverted() @ o
    me.transform(Matrix.Translation(-o))

    mw.translation = mw @ o

for o in bpy.context.scene.objects:
    if o.type == 'MESH':
        origin_to_bottom(o)
        #origin_to_bottom(o, matrix=o.matrix_world) # global

With some numpy
The global version above drops in global z direction from bbox center of geom, which can lead to an origin outside the bounding box.
Instead here is a version that finds all z minima and sets the origin to their mean
from mathutils import Matrix, Vector
import numpy as np

def origin_to_bottom(ob, matrix=Matrix(), use_verts=False):
    me = ob.data
    mw = ob.matrix_world
    if use_verts:
        data = (v.co for v in me.vertices)
    else:
        data = (Vector(v) for v in ob.bound_box)

    coords = np.array([matrix @ v for v in data])
    z = coords.T[2]
    mins = np.take(coords, np.where(z == z.min())[0], axis=0)

    o = Vector(np.mean(mins, axis=0))
    o = matrix.inverted() @ o
    me.transform(Matrix.Translation(-o))

    mw.translation = mw @ o

This could be further enhanced by using methods outlined in this excellent Q / A
Replace matrix @ vector list comprehensions with something more efficient
Note: Remember objects can share a mesh. The test code above runs over all mesh objects in the scene without checking for this.
Related: Origins to the down of the object by default

That doesn't work, it seems to set the origin to the center of the bounds in all axis, I need Z position to be bottom of the object bounds.

actually it seems to set the x origin position to the highest x vert position ?  Strange as the code looks like it should work for lowest z??

I'd suggest calculating the average XY and minimum Z of all the global vertex coordinates (rather than calculating it for the local coordinates, then calculating the global value only for the resulting origin), because rotations, scale, etc can give you weird results which will result with a wrong origin.

Added the origin to geometry operator as the code only worked for origins within a mesh.  The position given is local (put 3d cursor in local mode) and the origin will be on minz, is your object rotated?  Do you want the origin of the object to be relative to their current world position? If so perhaps adding an empty parent as a handle would be another approach

Sorry, my bad yes the object was rotated.  I applied the rotation and it seems to work now for most objects.  The origin for 1 or 2 objects don't seem to be centered in the Y position...any ideas?  I think the center calculation needs to be center of the bounds not the average of the verts??  Thanks

Added a method to make the lowest global z the origin of a mesh... kept in the local method too as it is useful too.. extending to set any all x, y, z to min, average, max

y_min = min([v.co.y for v in bm.verts])
y_max = max([v.co.y for v in bm.verts])
y = ((y_max+y_min)/2)

@batFINGER added the above to get the average of the bounds.  Not sure how to format code on here sorry.  Thanks for all your help

@MrDave updated to a version that uses the bounding box.  Test with or without the x and y commented part.  If you have an array modifier count 5 for instance without commenting puts the origin on z bottom of array item 3 (middle),  or as coded currently the z bottom of unmodified unit.  The global version puts origin at global z bottom of how the object is currently scaled /  aligned.

@batFINGER perfect. Sorry for the late reply.

This is very helpful for text objects. I appreciate the script!

@batFINGER am I correct that it currently still is not possible to move origin to the center + bottom Z of multiple objects? All info on this page works but only for separate objects. Unless I'm missing something?

Just wanted to add this here:
bl_info = {
    "name": "Origin to...",
    "author": "Martynas Žiemys",
    "version": (1, 0),
    "blender": (3, 4, 1),
    "location": "3D Viewport, Alt+Shift+Ctrl+D",
    "description": "Moves the origin point to top, botom and sides of objects' bounding boxes in global space.",
    "category": "Pie Menus",
}
import bpy
from mathutils import Vector
from bpy.props import (
    BoolProperty,
    EnumProperty,
)
class OBJECT_OT_origin_to(bpy.types.Operator):
    """Move the origin to top, botom or sides(global space)"""
    bl_idname = "object.origin_to"
    bl_label = "Origin to..."
    bl_options = {'REGISTER', 'UNDO'}

    center: BoolProperty(
        name="Center in other axis",
        description="Center in other axis",
        default=True,
    )
    move: BoolProperty(
        name="Move to 3D Cursor",
        description="Move to 3D Cursor",
        default=False,
    )

    sides =  (
        ('X', "X", "X"),
        ('-X', "-X", "-X"),
        ('Y', "Y", "Y"),
        ('-Y', "-Y", "-Y"),
        ('Z', "Z", "Z"),
        ('-Z', "-Z", "-Z"),
    )
    side: EnumProperty(
        name="Side",
        items=sides,
        default='-Z',
    )
    @classmethod
    def poll(cls, context):
        return context.object is not None

    def execute(self, context):
        switch_mode = False
        if context.mode != 'OBJECT':
            switch_mode = True
            bpy.ops.object.mode_set(mode='OBJECT', toggle=True)

        for o in context.selected_objects:
            if o.type == "MESH":
                override = bpy.context.copy()
                override["object"] = o
                with bpy.context.temp_override(**override):
                    bpy.ops.object.transform_apply(
                        location=False,
                        rotation=False,
                        scale=True,
                        properties=False
                        )
                d = o.data
                m = o.matrix_world
                if self.center:
                    bounds_center = (sum((m @ Vector(b) for b in o.bound_box), Vector()))/8
                    difference = m.translation - bounds_center
                    local_difference = difference @ m
                    for v in d.vertices:
                        v.co += local_difference
                    m.translation -= difference
                difference = Vector((0,0,0))
                if self.side == 'X':
                    bound = max((m @ v.co).x for v in d.vertices)
                    difference.x = m.translation.x - bound
                elif self.side == '-X':
                    bound = min((m @ v.co).x for v in d.vertices)
                    difference.x = m.translation.x - bound
                elif self.side == 'Y':
                    bound = max((m @ v.co).y for v in d.vertices)
                    difference.y = m.translation.y - bound
                elif self.side == '-Y':
                    bound = min((m @ v.co).y for v in d.vertices)
                    difference.y = m.translation.y - bound
                elif self.side == 'Z':
                    bound = max((m @ v.co).z for v in d.vertices)
                    difference.z = m.translation.z - bound
                elif self.side == '-Z':
                    bound = min((m @ v.co).z for v in d.vertices)
                    difference.z = m.translation.z - bound
                local_difference = difference @ m
                for v in d.vertices:
                    v.co += local_difference
                m.translation -= difference

                if self.move:
                    o.location = context.scene.cursor.location
        if switch_mode:
            bpy.ops.object.mode_set(mode='OBJECT', toggle=True)

        return {'FINISHED'}

class VIEW3D_MT_PIE_origin_to_pie(bpy.types.Menu):
    bl_idname = "VIEW3D_MT_origin_to_pie"
    bl_label = "Origin to..."
    def draw(self, context):
        layout = self.layout
        pie = layout.menu_pie()
        op = pie.operator("object.origin_to", text = "Origin to Left(-X)")
        op.side = '-X'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Right(X)")
        op.side = 'X'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Bottom(-Z)")
        op.side = '-Z'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Top(Z)")
        op.side = 'Z'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Back(Y)")
        op.side = 'Y'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Top and cursor")
        op.side = 'Z'
        op.move = True
        op = pie.operator("object.origin_to", text = "Origin to Front(-Y)")
        op.side = '-Y'
        op.move = False
        op = pie.operator("object.origin_to", text = "Origin to Bottom and cursor")
        op.side = '-Z'
        op.move = True
addon_keymaps = []
def register():
    bpy.utils.register_class(OBJECT_OT_origin_to)
    bpy.utils.register_class(VIEW3D_MT_PIE_origin_to_pie)

    kcfg = bpy.context.window_manager.keyconfigs.addon
    if kcfg:
        km = kcfg.keymaps.new(name='3D View Generic', space_type='VIEW_3D')
        kmi = km.keymap_items.new("wm.call_menu_pie", 'D', 'PRESS', any=False, alt=True, ctrl=True,shift=True)
        kmi.properties.name = "VIEW3D_MT_origin_to_pie"
        addon_keymaps.append((km, kmi.idname))
def unregister():

    for km, kmi_idname in addon_keymaps:
        for kmi in km.keymap_items:
            if kmi.idname == kmi_idname:
                km.keymap_items.remove(kmi)
    addon_keymaps.clear()

    bpy.utils.unregister_class(VIEW3D_MT_PIE_origin_to_pie)
    bpy.utils.unregister_class(OBJECT_OT_origin_to)
if __name__ == "__main__":
    register()
    # test calls
    #bpy.ops.object.origin_to()
    #bpy.ops.wm.call_menu_pie(name="VIEW3D_MT_PIE_origin_to")

That's made into a little add-on, that if saved to a file with .py extension from Blender's text editor(utf-8 encoding) can be installed as any add-on and creates a pie menu called with Alt+Ctrl+Shift+D:

I wanted to make it for myself for quite some time to help me with placing objects in my scene like ceiling lights, chairs, books or accessories on shelves and so on. I suppose you do not need to manipulate the origin for that, but I find it convenient so since I wrote it now and it's quite related to the question, I can share it here. It works on all selected objects and if you happen to be in edit mode, it switches back and forth as well.

Works really nice when testing on a cube I add fresh to my scene. However if the object has been rotated the actual object starts moving rather than just the origin. (Add cube, scale along an axis, rotate  along different axis, Ctrl+Alt+Shft+D and moving to bottom shifts my cube up and left)

which blender version is assumed here? I'm registered this addson, but can't call it with the key combination indicated in v 2.93.x

here is a script working in object mode or in edit mode
but notice if there are some shape keys, we have to go in edit mode
import bpy, bmesh
from bpy import context
from mathutils import Matrix, Vector

cao=bpy.context.active_object
me = cao.data
mw = cao.matrix_world
difference = Vector((0,0,0))
local_verts = [mw @ Vector(v) for v in cao.bound_box]
o = sum(local_verts, Vector()) / 8
o.z = min(v.z for v in local_verts)

difference = mw.translation - o
#difference.z = mw.translation.z - o.z #only z
local_difference = difference @ mw

if context.object.mode == 'OBJECT':
    if me.shape_keys:
        # select basis
        cao.active_shape_key_index = 0
        bpy.ops.object.editmode_toggle()
        bm = bmesh.from_edit_mesh(me)
        for v in bm.verts:
            v.co += local_difference
        bpy.ops.object.editmode_toggle()
    else:
        for v in me.vertices:
            v.co += local_difference
else:
    bm = bmesh.from_edit_mesh(me)
    for v in bm.verts:
       v.co += local_difference
    bmesh.update_edit_mesh(me)

mw.translation -= difference
```

I have found this code useful, it is taken from the Pie Menus blender addon source code:
https://github.com/sobotka/blender-addons/blob/7d80f2f97161fc8e353a657b179b9aa1f8e5280b/space_view3d_pie_menus/pie_origin.py
The idea is to center the origin with ORIGIN_GEOMETRY and then move it to the bottom of the model.
    bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
    o = context.active_object
    init = 0
    for x in o.data.vertices:
        if init == 0:
            a = x.co.z
            init = 1
        elif x.co.z < a:
            a = x.co.z

    for x in o.data.vertices:
        x.co.z -= a
    o.location.z += a

Put that code in a for loop and it should do the trick.
for o in bpy.context.scene.objects:
    if o.type == 'MESH':
    ...

This script will move the origin to the median point of the vertex/vertices with the lowest Z value (not necessarily the bottom center of the object).
Copy this script to Text window and Run Script, this will work in Edit mode and object mode, results:
1- Object mode is activated in the end result.
2- Origin set to the median point of the vertex/vertices with the lowest Z value.
4- 3D cursor is set at the new origin.
    import bpy

def select_lower_Z():

    o = bpy.context.object  # active object
    mw = o.matrix_world      # Active object's world matrix
    glob_vertex_coordinates = [ mw * v.co for v in o.data.vertices ] # Global coordinates of vertices

    bpy.ops.object.mode_set(mode = 'EDIT') #Change mode of selected object to Edit mode
    bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='VERT') #Set the type in Edit mode to Vertices
    bpy.ops.mesh.select_all(action = 'DESELECT') #Deselect all

    bpy.ops.object.mode_set(mode = 'OBJECT') #Change mode of selected object to Object mode

    # Find the lowest Z value amongst the object's verts
    minZ = min( [ co.z for co in glob_vertex_coordinates ] )

    # Select all the vertices that are on the lowest Z
    for v in o.data.vertices:
        if (mw * v.co).z == minZ:
            v.select = True

    bpy.ops.object.mode_set(mode = 'EDIT') #Change mode of selected object to Edit mode

    current_area_type = bpy.context.area.type#Save the current area type to a variable
    area = bpy.context.area #Change the area to 3D view in order to get rid of wrong context error
    old_type = area.type #Change the area to 3D view in order to get rid of wrong context error
    area.type = 'VIEW_3D' #Change the area to 3D view in order to get rid of wrong context error
    bpy.ops.view3d.snap_cursor_to_selected() #Move the cursor to selected
    bpy.ops.object.mode_set(mode= 'OBJECT') #Set the mode back to Object mode
    bpy.ops.object.origin_set(type='ORIGIN_CURSOR') #Move the selected object origing's to the 3D cursor's location
    bpy.context.area.type = current_area_type #Set the area type back to what it was before changing it to 3D view

select_lower_Z()

Only works for one at a time

Yes, this script is part of an add-on I was working on, the add-on now is complete, works for multiple mesh objects and has many features. Here's a link to the tutorial https://youtu.be/OaieiTAh5ZA the download link is in the description

" This video is unavailable.
Sorry about that." Link is dead

https://youtu.be/oaieiTAh5ZA


text:
How do I make my mesh have a matte black finish in cycles?
How do I turn a mesh into a black mesh with a matte finish? I tried all the texture types.
I am in cycles render.

Textures are not what you want, you want to use the Material nodes. Try a Diffuse shader

Matte simply means diffuse.  So for a pure matte, black shader I would simply use a diffuse shader with the color set to almost black (HSV about [0,0,0.98]).  If it is pure black, it will not reflect any light and thus not look good.
Photorealism note:  Almost nothing in the real world is purely diffuse.  To make your material look much better and more believable you might want to mix in (with a factor of about 0.05) of a glossy shader with a roughness of around 0.12.

@BoratSagdiyev Glad I could help!  If this solved your issue, you could click the green accept this answer checkmark.


text:
How to change subdivisions after adding a grid
I'm following this tutorial, when I use Add > Mesh > grid and then scale it, I get a grid with 9x9 squares:

To make the maze, I want the grid to have more squares (15x15 for e.g) however, no mater how big I scale it it remains 9x9 squares.
Is there a way to control the number of squares this grid has?

Subdivide? (W > Subdivide)

I didn't even knew that grid object, thx!

It's only possible to change a primitive's attributes immediately after adding it. If you perform any action, it's set in stone. You also can't Ctrl-Z. All you can do after creating it is add a modifier.

Immediately after adding the grid (See here for details as to why it has to be immediate) you can access various options at the bottom of the 3D toolbar (where it says Toggle Editmode in your screenshot) such as the x and y subdivisions:

You can also access these options (again, immediately after adding the grid) by pressing F6.
So you should:

Add the grid.
Increase x and y subdivisions as desired.
Then scale the grid up as much as you want.

thanks it works, but it seems that the F6 thing doesn't work(using blender 2.73)

@Mhmd It works for me. If you're using a laptop you might need to press another key for f-keys to work.


text:
Mysterious Black Dot
I have a black dot in my scene view (it is floating in world position) which I can't delete and I have no clue how it occured:

This dot is only visible when I have selected the armature, but I can't manipulate this black dot with any bones in any way.
I duplicated this model from my base model and saved it in another file to create seperate animations, then I noticed this black dot.
Has anyone encountered a similar problem?

Is it possible you could upload the .blend?

sure, here it is: https://dl.dropboxusercontent.com/u/78559347/Tiger2.rar

okay quick update, I have succesfully reproduced this error: I have shift + x clicked some animations in the action editor which I didn't need anymore. Hope it helps, and thank you for your time.

It's a grease pencil layer. You can delete it in the Properties Panel (press N in 3D View to open/close). Select the Armature and click on the "x".


text:
Have rigid body animation only rotate and not translate
I am about to create an Animation of a cloth-hanger, which is meant to become a »real« one, because it should be a rigid body in a physic simulation. The cloth-hanger should hang a real one does and its behaviour should come relatively close to reality. Please see the image below, to get a better idea of the idea behind it.

Here are some details of the model:

Question:
I am trying to join the hook and the bar in such a way that the bar can rotate around the hook, but not translate. So my first question is: How can I establish such a joint?

See http://blender.stackexchange.com/q/2074/599. The application is a little different, but the method should be the same.

It would help if the diagrams had some notes in them to label the parts which are being discussed, and maybe some arrows to show desired axis of motion for various parts.

@gandalf3 Thanks a lot, that seems to do the trick!


text:
Render problem. Mesh is cut on final render or in render display
I used mirror mod., have 2 objects. The problem is that in final render (F12) it is cutted in some strange way. Part of the mesh is vanished, but it exists on my 'solid' view. It makes me mad. Please, help me. THx.

(cycles render)

Please, add a screenshot this modifiers and 3d view.

It's still not clear. Can you provide a blend-file?

Sorry, im not very smart. I didnt know, that 'render' ratio, that gave opportunity to see object in render is switced off

Now you posted the screenshot I see my answer is not relevant, so I removed it. I'm not sure about what you meant with "render" ratio. I do suspect, though, that your problem is the Subsurf modifier. You can confirm it by either lowering the "Render" subdivisions to the same value you're using in the "View" and seeing if the issue goes away when rendering, or increasing the "View" to the "Render" value and see if the issue appears in the Viewport.


text:
node system and procedural in blender
What node system add-ons,other than sverchok, animation nodes and every thing nodes are there in Blender. And, if available, procedural add-ons (not in a node interface) for modeling, animation, etc?

Sverchok and animation nodes are basically all, at the moment. Take a look at Houdini, it's incredible for node based procedural workflows

There's also a relatively new node system now called "Sorcar" (formerly known as ProcGenMod).
The development thread is over at Blenderartists https://blenderartists.org/t/sorcar-formerly-procgenmod-procedural-modeling-in-blender-using-node-editor/1156769/284 , i've seen cool use-cases. The add-on developer has taken much feedback into consideration and it's also b28 ready.

There was many attempts, blendgraph from Atom for example, but if you want to make real node tool you should do much of work. Motion tools was also node-based.
procedural geometry in addons without nodes is tissue from Alessandro Zomparelli (he participate also in sverchok and his tissue addon partially is adaptive polygons node, there is also adaptive edges node from Linus Yng and much the same from zeffii).
Procedural is also citymaker, prokitectura and many-many other in all of kind.


text:
Sweep along a path through multiple cross-sections
I'm trying to make sweep along a path through multiple cross-sections. Finally got to the point where I managed to place objects along that path in correct orientation - almost. Still have some glitch or some fault in my nodes. It does place shapes right, but sometimes shape turns around 180deg. on Z axis when changing position along curve.

Now question is how could I make sweep of these forms along that path.
If anyone need blender file to take a look - let me know, will try to send it. and it is on 2.81a blender and currently latest sverchok.

If not already aware, you may wish to make use of https://blend-exchange.giantcowfilms.com/

all profiles would need to have the same Vertex count, or at least the last profile (looks like 4 vertices) would need to have several double vertices on each of the 4 points (or subdivided so there are vertices linear interpolating the 4). I'll show an example below, and try to closely match yours

@batFINGER has given a couple of non-Sverchok answers here and here which may be of interest to you

i'll further update the answer if you upload a demo blend with those shapes. I'd like to give you a nice answer.
For now, i'll clarify what i've said in the comment, with an illustration. For predictable results I recommend making sure all profiles have the same vertex count. There are two ways to do that.
subdivide the square profile.

or, double up on the destination vertices.

notice that the locations of the vertices in this "doubled up" example will produce some undesirable twisting in the end result.

One simple way is to interpolate both UV (slices between profiles) - without a path or trajectory". Notice how the extrusion goes exactly through the profiles too.

In the above example you must position and rotate the profiles in such a way as to achieve minimal stretching. Sverchok's Object In node interprets each Curve as a list of Vertices (the vertex indices are sequential and stable from Curve objects) and we interpolate between the list of resulting profiles. Get the .blend on this issue

Can you loft 'normal' to intermediate profile vertices? In practice, I think this would mean that the vertices adjacent the profiles would be parallel to those profiles.

I'm not sure exactly what you mean. Feel free to ask a detailed question on the issue tracker with plenty of visual aides to narrow down the core. We have Bend profile Surface and Path nodes, with documentation.

i hadn't really thought about this, but i suppose when using a Path/trajectory for the loft, it lets you supply fewer profiles to achieve a particular result. Maybe try the nodes mentioned above

I feel like I've exhausted my question quota, but maybe I'll try to illustrate the point - if it's not clear.

i prefer to receive questions that can either be answered by a solution or a new node, than to see people migrate away from sverchok :)  often this does mean that we need people to spell out their needs, and then we decide if we can accommodate effectively.


text:
How to render a curve without creating meshes?
I am able to render a curve by bevelling it.
However, for a scientific visualisation that I am working on, this doesn't render the way I wish it to. I would like the curve to render as a fixed width line irrespective of the distance from the camera.
Currently, I have to adjust the bevelling amount based on camera distance, and also play with rendering samples to get a smooth looking line.
Is there a cleaner approach that I am missing?
I am currently using the "cycles" renderer, but I am open to suggestions for any other renderer. Thanks!
Clarification: This is an animated visualisation. Hence, the distance from camera varies continuously. Here's an example video of what I am trying to do. The comet orbit is the curve I am worried about.

Have you tried setting camera view to Orthogonal instead of Perspective? If it's impossible to do with Cycles, you may want to try Blender Internal, too.

I need a perspective view, but thanks for that suggestion. Yes I tried with Blender Internal too, with the Free-style option; but that also requires a mesh, and then it doesn't look like a simple line anymore.

You could use OpenGL render (the button in the 3D View header) in Wireframe view mode. Every curve is rendered as a line without the need for any beveling. Animations can also be OpenGL rendered.
It is very fast. But there is no possibility to set the line width. It's always 1px.
To support transparency you have to set the shading mode to GLSL (press N in 3D View and look for Shading).

It's actually an animation that I need to render. See the example video that I have added to the Q

I updated my answer. There are two OpenGL render buttons: Still and animation.

Played a few times with the OpenGL renderer, but its support for materials seems to be very primitive. No transparency, for example.

I updated again for transparency.

As the distance from camera to an object increases the apparent size of the object will decrease, in perspective things farther away always appear smaller.
The only way to prevent that is to use an orthographic camera or keep all lines the same distance from the camera.
As for increasing samples to get a clean result - that is the nature of cycles. It depends largely on the material and world settings. If you are using simple colours then the blender internal will be just as easy to setup without having to adjust sample amounts.
You can also adjust the resolution of both the bevel and curve to get smoother surface results instead of converting to mesh if the surface of the curve is not smooth enough.

Using the bevel and resolution is still converting it to a mesh dynamically. I wanted to avoid that conversion completely so that I can continue to use a realistic wide-angle camera. See the sample vid that I added to the Q.


text:
How to set options before script execution
Let's say I want to create UI for addon which allows to choose options (eg delete meshes only) before script execution. How can I achieve that? I know about F6 panel (and options in the T-panel) but it works only after I run a script.

You can use an operator with a dialog, as explained in the docs.

You can also register properties on bpy.types such as WindowManager, Scene etc., add them to a panel together with an operator (will appear as button) and pass the value of a global property (bpy.types) to the operator as operator property:
import bpy

class PrintSomeString(bpy.types.Operator):
    bl_label = "Print Some String"
    bl_idname = "object.print_some_string"
    bl_options = {'REGISTER', 'UNDO'}

    print_this = bpy.props.StringProperty(name="Print this")

    def execute(self, context):
        self.report({'INFO'}, self.print_this)
        return {'FINISHED'}

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        layout.prop(context.window_manager, "some_string")

        props = layout.operator(PrintSomeString.bl_idname)
        props.print_this = context.window_manager.some_string

        props = layout.operator(PrintSomeString.bl_idname, text="Print welcome message")
        props.print_this = "Welcome to Blender!"

def register():
    bpy.utils.register_module(__name__)
    bpy.types.WindowManager.some_string = bpy.props.StringProperty(name="Some String")

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.WindowManager.some_string

if __name__ == "__main__":
    register()

(Adds a panel to the Object tab in Properties Editor)


text:
How to invoke a dialog from a menu?
More specifically - how to invoke a invoke_props_dialog from a bpy.types.Menu?
The dialog invokes properly from Search, but not from a menu.
This is an operator that invokes a dialog:
import bpy

class MyDialog(bpy.types.Operator):

    bl_idname = "tools.mydialog"
    bl_label = "My Dialog"

    string_prop = bpy.props.StringProperty(name="String Prop")

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):

        return {'FINISHED'}

bpy.utils.register_class(MyDialog)

It works from search as well as from menu, not sure what you mean? If it doesn't, the operation context might be changed in the particular menu you add the operator to. If so, create a layout subelement (row, column, split...) and set sub.operation_context = 'INVOKE_DEFAULT' above sub.operator(...). http://www.blender.org/documentation/blender_python_api_2_71_release/bpy.types.UILayout.html?highlight=operator_context#bpy.types.UILayout.operator_context

What about doing it like this ?
import bpy

class MyDialog(bpy.types.Operator):

    bl_idname = "tools.mydialog"
    bl_label = "My Dialog"

    string_prop = bpy.props.StringProperty(name="String Prop")

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        # Whatsoever needs to be done...
        return {'FINISHED'}

def my_menu_addition(self, context):
    self.layout.operator(MyDialog.bl_idname)

if __name__ == "__main__":

    bpy.utils.register_class(MyDialog)
    bpy.types.INFO_MT_file.append(my_menu_addition)

https://stackoverflow.com/questions/51135822/blender-python-add-operator-to-menu-with-invoke-default here is the answer
layout.operator_context = "INVOKE_DEFAULT"

this works for me.

You need to define an operator which uses calls invoke_props_dialog from its invoke function. Then reference this operator from your menu.

An operator like http://www.pasteall.org/53035/python ? That works from Search, but doesn't from a menu.

please include sample code in question, better then referencing external sites which may become dead links.

Done.----------


text:
Cannot modify UV texture in the UV editor
I am following a blender guru's video, and I had some trouble adjusting the floor's UV. In the view port, the texture works fine, I just want to change the scale of it, but in the UV editor.

Enter Edit mode for the object and select all geometry

To manipulate UV on the image you need to:

Unwrap your model.
Copy image name from texture node by Ctrl+C.
Find it in dropdown menu of image area.


text:
Align vertices along a face(not in x, y, z axis)
i had a face(pic 1) and after add solidify modifier, there were some weird shading issue(pic 2), and i cannot fix it. i thought may be the reason that some of these vertice were not on the same face. so i try to align them along a face. After search it on google, still cannot figure it out.
Can any one help me out?
Or maybe point out the reason of the shading issue?

maybe share your file so that we understand what happens, perhaps you need to recalculate the normals?

@moonboots Thanks for replying, i solved the problem already, something wrong with the normal. Thank you!


text:
Repeting texture rather than scaling texture? How to fix it
Trying to add an image texture on my mesh, and i UV unwrap it like this.

but it turns out to be

Not sure what is wrong with this. Have no clue.
Here is my Node setup(i am using backfacing to make a plane have two material on both side)

Remake a new logo file ,and made it jped file. now it works...

In order to prevent the image repeating, set the Image Texture node from ‘Repeat’ to ‘Clip’. This tells the node to only output a single image within the 0.0 -> 1.0 range.

What do you mean by set from Repeat to clip, is there any check box or option??

@Richard On the Image Texture node you’ll see the various settings for the node - currently Color, Linear, Flat, Repeat, Single Image. Click on the Repeat one - this sets how the image should behave outside the normal coordinate range - you should see an option for ‘Clip’ - choose that one.

If you check Min and Max in each Vector > Mapping node, then the image will not repeat.

Thank you, think this would help many people!

@Richard Thanks! Glad to help. If you liked my answer, please consider upvoting and accepting it (the up-arrow and check mark on my post’s left-hand side). I’d appreciate it!

I really appreciate! but i dont have enough reputation to vote... sorry for that


text:
Any suggestion on how to model this?
i am modeling this cardbox but run into some problem with the curve pop out at the joint.
After tried some method, idont know how to model this perfectly. My way of doing it sucks.

Try to bevel the edge at the center. Ctrl+B.

@lemon Its not working, Cause there three edge connecting to this vertce.

Not really sure what you are asking for here. Is it the end of the box like this?

If so then I can make up some screenshots. If not then maybe you could describe it a bit more


text:
how to make bend modifier affecting from parent to child which has physics applied?
the question is in the title, please help!
The bend modifier is set to the DNA helix string. I want the two strings to split while the attached flags with physics are still on it.
First I tried with a simple parent set to an empty in which my flag is hooked. But it wasn't moving at all. After that I've set parent to vertex(triangle). The hooked verticies are moving but the physics is not working now.
How can I make this work?

hello could you please share your file? https://blend-exchange.com/


text:
How do I make a loop-de-loop without distorting the track?
I'm relatively new to Blender and I'm trying to make a race track. There is supposed to be a loop-de-loop and I'm using the array-curve modifier technique to do that. However, when I try this, the track tilts at the end of the loop, and that's a result that I don't want. Is there a way to make a loop-de-loop that doesn't cause the track to distort? Thank you for reading

You should be able to fix the problem by tweaking the Tilt value of the control point, open the N panel > Item > Tilt, or CtrlT:

Imgur mirror (SE image hosting has problems)
The result above isn't exactly right, because I was too lazy to figure bezier handles, as auto handles didn't give me correct result. But the principle - consistent curve normal - is there. Of course you don't necessarily want a shape like this for an actual loop de loop, especially if it's a road rather than rails and you want to help the vehicle to stay on the right path. Then some normal twisting would actually be desired.
The way I achieved it is by creating a circle, edit, set handles to free, remove cyclic, duplicate one of the ends, connect it with the other end, extrude it, then ✲ CtrlNumpad +, H to hide 2 last points, select the other end, extrude in the opposite direction. Since I was working in 2D (XY axes), I could then just set the twist method to Z-up:

Imgur mirror
Then I moved the 3rd, 4th and 5th, 6th and 7th points up by 0.1, 0.2, 0.3, 0.4 and 0.4 respectively, and set the 3rd, 4th and 5th point handles to auto (this is imperfect).
For bevel I just used a line parallel to y axis.
At the end I rotated the object 90° around y axis and moved it up by 1 unit (the default radius of the circle).
Here's a geonodes equivalent:

Imgur mirror
It's better because the circle part correctly linearly changes its z component (before rotation; its resulting x component), but the (resulting) horizontal paths are parallel to y axis and never ease into the loop. You can fix it by applying subdivision surface just after merging by distance (effect will depend on resolution of curves) or doing something custom (calculating a circumference of the circle and dividing by spiral height to get the ratio of change).

Imgur mirror


text:
Modeling a circular shape with round extrusions along the edge
I'm making this pocket watch and am wondering how to make this design where there are a lot of round extrusions. Thanks!

The answer will depend upon how you plan to use the result. For example, in a game, you might make a simple mesh and use as image texture to provide some of the smaller details.


text:
Why doesn't Connect Vertices create an edge as opposed to Make Edge/Face?
Supose we have this scenario:

Why the Connect vertices action has no effect but the Make Edge/Face action does?

I'd say Vertex Connect uses exhisting geometry to cut it through, and this doesn't exhist here.

@MrZak That is the answer, you should post that. It's basically a lazy, simplified version of the knife tool.

The difference between them is that Connect Vertices tool cuts through already exhisting geometry (just like Knife Tool), whereas Make Edge/Face creates new one.
In the proposed scenario it's hard to see the difference, so to better demonstrate it I used side of the cube.
Connect Vertices

The tool will cut through exhisting geometry based on selected vertices which belong to the same face (so if I selected 3 vertices where one vertice per face, there wouldn't be any effect)
Connect Vertex Path
(I decided to put it also here because for some time I couldn't get the difference)

The result of using Connect Vertex Path command (J). The order of selecting vertices is important; whether vertices belong to the same face is not. The adjacent faces were splitted, becoming tris now.
Make Edge/Face

Make Edge/Face (F) will simply create new face there atop of exhisting one, not splitting anything.


text:
Store each animation frame as new object
Is it possible to store each animation frame as a new object? I searched quite a long time now on google and was wondering that I cannot find any information about this.
I just have a simple model with a simple pose animation and I'm looking for a way to get each frame stored as a new object, that I end up with maybe 100 objects "frame001", "frame002", "frame003", ...
I need this for a game engine that does not support bone animations, but I can fake such an animation by exporting this object (as a collada) and then setting only one of the "frame-objects" visible in this engine.

I tried to write a quick and dirty python script myself after some basic reading, but unfortunately the most important action (the conversion to a mesh) does not work:
import bpy

count=0

for x in range(bpy.data.scenes["Scene"].frame_start,bpy.data.scenes["Scene"].frame_end):
    bpy.ops.object.duplicate_move()

bpy.ops.object.select_all(action='DESELECT')

obs = bpy.data.objects
bpy.data.scenes["Scene"].frame_current=0
for ob in obs:
    bpy.ops.object.select_all(action='DESELECT')
    if ob.type == 'MESH' and ob.name.startswith("model"):
        if count>0:
            ob.select=True
            bpy.ops.object.convert(target='MESH')
            bpy.data.scenes["Scene"].frame_current+=1
        count=count+1

I've added python to the tags since I think you'll need this.

I've tried that but the collada exporter always jumped to the last frame.

.obj animation export should work fine. Is this an option for you?

Blender has an exporter for "Lightwave Motion Designer (MDD)". If you can't use the file format the script may help

You should avoid operators whenever possible:
import bpy

scene = bpy.context.scene
frame_current = scene.frame_current

for f in range(scene.frame_start, scene.frame_end + 1):
    scene.frame_set(f)

    meshes = []
    for ob in scene.objects:
        if ob.type == 'MESH' and ob.name.startswith("model"):
            me = ob.to_mesh(scene, True, 'PREVIEW')
            meshes.append(me)

    # do something with the meshes (note: they aren't linked to anything)

    # Clean up mesh copies
    for me in meshes:
        bpy.data.meshes.remove(me)

scene.frame_set(frame_current)

This will apply modifiers to all mesh objects in the current scene that start with the name model. The resulting (new!) mesh datablocks can be used for export.
Note however, that you will have to create objects and link the meshes to them if you plan to call an export operator - they usually export all (selected) objects, not invisible mesh datablocks. You may wanna check out the exporter code and see if you can import the actual export routine to avoid that operator call and maybe even the object creation.

If you want to apply animation in a way, that there's one static object per frame of an animated model, you may use the following script:
import bpy

scene = bpy.context.scene
frame_current = scene.frame_current

r = range(scene.frame_start, scene.frame_end + 1)
l = len(str(len(r)))
obs = []

for f in r:
    scene.frame_set(f)

    for ob in scene.objects:
        if ob.type == 'MESH' and ob.name.startswith("model"):
            me = ob.to_mesh(scene, True, 'PREVIEW')
            me.transform(ob.matrix_world)
            new_ob = bpy.data.objects.new("%s_frame%0*i" % (ob.name, l, f), me)
            obs.append(new_ob)

scene.frame_set(frame_current)
for ob in obs:
    scene.objects.link(ob)
scene.update()

It applies modifiers as well as transformations (.matrix_world, so loc/rot/scale).

Excactly was I was looking for / trying to create!

Thank you for this very helpful answer! Is there a way to modify the script so that the object origins don't get left behind? Currently all my mesh data looks great, but I can't join the meshes as shape keys successfully because the origin point is offset by the animation.

@Mentalist: Take the code of the 2nd example above, remove the call to me.transform() and add new_ob.matrix_world = ob.matrix_world.copy() above obs.append(new_ob), that should do the trick (unless the object is parented to another object, I believe it would require some additional logic in that edge case).

Your awesome script is no longer working in recent versions of Blender due to some Python API changes with update, frame_current, etc. I tried to fix it, but have not had success. Could you please take a look and add a 2.8+ updated version?

CodeManX, Please disregard my last comment. batFINGER has kindly provided an updated version of your script in this answer.  :-)

Following is an example script that converts the mesh (animated by an armature) to separate objects. To keep the code simple, the assumption is that there is only one modifier (Armature) and the mesh was bound to armature using vertex groups. There are 5 frames of animation (frames 1, 2, 3, 4, 5)
import bpy

# Select the mesh that is animated by a keyframed armature in pose mode.
source_object = bpy.context.active_object

objects = []

for index in range(1, 6):
    bpy.ops.object.duplicate_move(
        OBJECT_OT_duplicate={"linked":False, "mode":'TRANSLATION'},
        TRANSFORM_OT_translate={"value":(0, 0, 0),
                                "constraint_axis":(True, False, False)
                                }
    )

    objects.append(bpy.context.active_object)

for index in range(1, 6):
    bpy.context.scene.frame_set(index)

    override_context = bpy.context.copy()

    override_context['active_object'] = objects[index-1]
    override_context['object'] = objects[index-1]
    override_context['selected_objects'] = [objects[index-1]]

    bpy.ops.object.modifier_apply(override_context, apply_as='DATA', modifier='Armature')
    bpy.ops.object.vertex_group_remove(override_context, all=True)
    objects[index-1].select = False

bpy.context.scene.frame_set(1)
source_object.select = True


text:
Mesh Analysis does not display anything
I'm trying to use the mesh analysis in the properties panel to inspect my model for the thickness, I want the visual tools rather than the plain selection from the Print3D add-on. However when I check it on, it does nothing. Am I missing something here?
Thanks, Matthew

Matthew Inglis, it would be highly useful to those who might want to help you if you would upload a copy of your blend file to Blend-Exchange, (or a similar site) and edit a link to the file into your question.

I can't, I'm working on a model for a company and I don't know if I'm allowed to share it, besides I checked just on the regular blender suzzane and it still didn't work.

Found the issue, I was using matcaps, mustn't like the combination of matcaps and the mesh analysis.

Sorry about that, meant to convert this to an edit on your original post so it could be easier seen. I'm not sure it's exactly valid as an answer since somewhat localized but that's just me, your call.

I use 2.69. I resolved my problem of the Mesh Analysis not functioning when I deleted or, less drastic, switched off the Mirror Modifier. ie, clicked the Eye icon to off.

For a visual of the selected areas you are checking, try the mesh analysis tool. While in edit mode press  N  to open your properties panel, then scroll down to find it. You will be able to select the same as you check for with the 3D print toolbox addon.

Don't know what the hell happened, I did exactly that and it showed nothing, working fine now though...

Found the issue, I was using matcaps, mustn't like the combination of matcaps and the mesh analysis.

@MatthewInglis I do not think you should have accepted this answer as the accepted answer as by your comment it was an issue with matcaps, which is nothing to do with this answer.

@RayMairlot Well I would change it now but some moderator deleted it...

@MatthewInglis I see that, I just mean you don't have to mark an answer as accepted even if it's the only answer and you can always un-accept it if you want to.

@MatthewInglis your answer has now been un-deleted.

It seems that any modifier disables the mesh analysis.
I had the same problem, hide Subsurf (I only had this one unsnapped) and  the analysis worked as suppose to.
Hope this helps.

i meant disable not " enable" basically u need to hide all the unapplied modifiers before running mesh analysis. sorry, its late at night, seems i have to go to bed , not post on forums :)


text:
How to efficiently convert a PIL Image to bpy.types.Image?
I'm trying to put together a function that takes in a grayscale PIL Image and returns a bpy.types.Image (to be used a diffuse texture) but it feels slow:
First I've tried a simpler non python version:
def pil_to_image(pil_image, name='NewImage'):
    '''
    PIL image pixels is 2D array of byte tuple (when mode is 'RGB', 'RGBA') or byte (when mode is 'L')
    bpy image pixels is flat array of normalized values in RGBA order
    '''
    now = time.time()
    # setup PIL image reading
    width = pil_image.width
    height = pil_image.height

    pil_pixels = pil_image.load()
    byte_to_normalized = 1.0 / 255.0
    num_pixels = width * height
    # setup bpy image
    channels = 4
    bpy_image = bpy.data.images.new(name, width=width, height=height)
    # bpy image has a flat RGBA array (similar to JS Canvas)
    bpy_pixels = [None] * width * height * channels

    for index in range(num_pixels):
        x = index % width
        y = index // width
        # read x,y int or tuple flip Y
        pixel = pil_pixels[x,height - y - 1]
        # convert to 1D index, taking channels(4) into account = red index
        r_index = index * 4
        # handle gray
        normalized_pixel = pixel * byte_to_normalized
        bpy_pixels[r_index]     = normalized_pixel
        bpy_pixels[r_index + 1] = normalized_pixel
        bpy_pixels[r_index + 2] = normalized_pixel
        bpy_pixels[r_index + 3] = 1.0
    # update pixels
    bpy_image.pixels = bpy_pixels
    print("pil_to_image completed in",time.time() - now,"s")
    return bpy_image

Which prints pil_to_image completed in 4.9107561111450195 s for a 4096 x 2160 image
I've tried using numpy, however the it's similarly slow:
def pil_to_image(pil_image, name='NewImage'):
    '''
    PIL image pixels is 2D array of byte tuple (when mode is 'RGB', 'RGBA') or byte (when mode is 'L')
    bpy image pixels is flat array of normalized values in RGBA order
    '''
    now = time.time()
    # setup PIL image reading
    width = pil_image.width
    height = pil_image.height

    pil_pixels = pil_image.load()
    byte_to_normalized = 1.0 / 255.0
    num_pixels = width * height
    # setup bpy image
    channels = 4
    bpy_image = bpy.data.images.new(name, width=width, height=height)
    # bpy image has a flat RGBA array (similar to JS Canvas)
    bpy_image.pixels = (np.asarray(pil_image.convert('RGBA'),dtype=np.float32) * byte_to_normalized).ravel()
    print("pil_to_image completed in",time.time() - now,"s")
    return bpy_image

this prints pil_to_image completed in 5.018976926803589 s
Am I missing something? Is there a more efficient way of turning a PIL image into a Blender image to be used as a DiffuseBSDF texture?
Update
Thanks to @batFINGER link I could speed up the function a tad using slice notation:
def pil_to_image(pil_image, name='NewImage'):
    '''
    PIL image pixels is 2D array of byte tuple (when mode is 'RGB', 'RGBA') or byte (when mode is 'L')
    bpy image pixels is flat array of normalized values in RGBA order
    '''
    now = time.time()
    # setup PIL image conversion
    width = pil_image.width
    height = pil_image.height
    byte_to_normalized = 1.0 / 255.0
    # create new image
    bpy_image = bpy.data.images.new(name, width=width, height=height)

    # convert Image 'L' to 'RGBA', normalize then flatten
    bpy_image.pixels[:] = (np.asarray(pil_image.convert('RGBA'),dtype=np.float32) * byte_to_normalized).ravel()

    print("pil_to_image completed in",time.time() - now,"s")
    return bpy_image

which now prints: pil_to_image completed in 3.4869320392608643 s
Any tips on speeding it up further more than welcome :)

See https://blender.stackexchange.com/questions/3673/why-is-accessing-image-data-so-slow

Out of interest what is the timing without assigning to blender image pixels?

pil_to_image completed in 0.006505489349365234 s

I appears it's pixel assignment is the slowest: converted to RGBA in 0.022275209426879883 converted to numpy array in 0.12366914749145508 numpy array normalized in 0.0631706714630127 ravel in  0.0 assigned pixels in 3.236783742904663

Thanks for @batFINGER's reference to CodeManX's snippet this is the fastest option I got:
def pil_to_image(pil_image, name='NewImage'):
    '''
    PIL image pixels is 2D array of byte tuple (when mode is 'RGB', 'RGBA') or byte (when mode is 'L')
    bpy image pixels is flat array of normalized values in RGBA order
    '''
    now = time.time()
    # setup PIL image conversion
    width = pil_image.width
    height = pil_image.height
    byte_to_normalized = 1.0 / 255.0
    # create new image
    bpy_image = bpy.data.images.new(name, width=width, height=height)

    # convert Image 'L' to 'RGBA', normalize then flatten
    bpy_image.pixels[:] = (np.asarray(pil_image.convert('RGBA'),dtype=np.float32) * byte_to_normalized).ravel()

    print("pil_to_image completed in",time.time() - now,"s")
    return bpy_image

it was interesting to see that
bpy_image.pixels[:] = (np.asarray(pil_image.convert('RGBA'),dtype=np.float32) * byte_to_normalized).ravel()

was faster than
bpy_image.pixels = (np.asarray(pil_image.convert('RGBA'),dtype=np.float32) * byte_to_normalized).ravel()

I've noticed that pil_image is returning order of rows from top to bottom and blender had bottom to top (reversed order), so I had to add [::-1] before .ravel()


text:
How can I manage multiple animations in one .blend file?
The way I currently use animations is just one long timeline. All my separate animations are lined up back to back on this single timeline. I keep the start/end frame numbers in a separate file.
This becomes a problem when I want to expand, shrink or alter an animation. Since the length of the animation changes, the start/end frames of all subsequent animations also changes. This requires me to manually parse the timeline and update my file with the new start/end frames. The file looks something like this:
0:0:6:6=SPECIAL_SETUP
7:7:22:22=ATTACK_1_FireTurret
23:23:44:44=IDLE_ANIMATION_1_Sweep
45:45:55:55=IDLE_ANIMATION_30_Stationary

Where the format is as follows:
[Start frame]:[Loop start]:[Loop end]:[End frame]=Name of animation

I would like to not do this anymore. Since it can get messy.
How can I have multiple animations, each with their own timeline, inside a single .blend file?
Alternatively, is there a way to place markers in my timeline that can be used to automatically generate a file like the above. The markers would ideally move with the frame they are attached to, not the specific frame number.

An interesting use for timeline markers is the triggering of events/sideeffects, e.g. triggering to play a footstep sound in the frame the foot hits the ground, firing a projectile when a trigger is pulled, e.t.c... Unfortunably, such use is not supported by most exporters (e.g. timeline markers are not exported). When using multiple actions, make sure to activate 'fake users' for the actions, otherwise, actions currently not used (e.g. with 0 users) aren't saved. Also, I did a little test w/actions: It looks like the .x exporter only exports the timeline/current action.

@sarahm Thanks Sarah. I also tested this with the same result. I think I will edit the question to remove the .x format, and leave it as a more general managing multiple animations in a single blend file (since no one really answered the .x part anyways).

If you go to the Dopesheet View you can create and name separate animations with the Action Editor pane. You can also use the main Dopesheet pane to scale your animations.

Each of these animations as it relates to the objects do have their own separate timelines within Blender and can be linked or copied to other .blend files.
Also you can press M in the timeline to add a marker. I would really recommend desisting from the approach you have been using as it's very inefficient and is prone to error.

I would like to desist from my current method, hence the reason for asking this question :) I'll give what you've suggested a try. Thanks.

@Byte56 please do and feel free to ask back on anything that might be strange. I would assume it will be a major change to your workflow.

I've found that exporting the .x format only exports the current activity. I've removed the .x stuff from this question however, since it was diluting the question. Otherwise, this appears to work. Thanks.

@iKlsR What i the use of these markers? I have just started with animation and need to use it in BGE. My problem is based on user input i need to do different animations

@user5507 https://docs.blender.org/manual/en/dev/animation/markers.htmlhttp://wiki.blender.org/index.php/Doc:2.6/Manual/Animation/Basics/Markers. Also look in the related links on the side for eg http://blender.stackexchange.com/questions/2670/can-multiple-animations-be-saved-in-a-blend-file?rq=1

I'm confused by this screenshot. If I can have multiple animations in blender then where are they? Where do I select "walkcycle", "jump", "run" etc. The screenshot above doesn't seem to show any different animations.

@gman There aren't any in the screenshot. There is however a new button that will create these and you can pick from the list on the left.

Your problem can be addressed quite easily by switching to a multi scene workflow inside the same blend file.
Look Development Scenes (Modeling, Texturing, Rigging and Shading, Create a pose library and action library)
Layout Scenes (Link objects from Look Development Scenes and Create groups of objects (props), Create Light Rig groups)
Animation Scenes (Set shot frame range - Instance groups from layout (props/sets in the scene)- Link character rig - Create shot specific animation - In NLA editor mix actions from Look Development and shot specific actions to create master animation - Instance Light rig group and light the scene)
Setup as many animation scenes with their own frame range
Create another scene and then in the sequence editor layout scene strips and compose your animatic.

I suggest looking into the NLA(Non-Linear Animation) editor.  By making your animations into NLA strips (click the orange snowflake) you can scale an animation clips like you would scaling something in the 3d view.

One solution is to use add-on, which can save your independent animations into your blend file, and you can load them back while needed.
Such as this add-on:
https://blenderartists.org/t/animation-versions-kit/1243407

I think it would be good to disclose that you are the creator of this add-on.


text:
Why Blender doesn't let me select all aligned vertex edges at all?
I drew three coloured squares over the screenshot, so you can catch easier what do I want to accomplish here.
I want to select the 4 edges of the vertex as stated in the green square and not only 2 as shown in the red ones.
I don't know why Blender doesn't allow me to select them. For unknown reasons sometimes I have to start all over again, all because of this.

Where you have a vertex selected inside the red square, the highlighted edges are the ones connected to the selected vertex. The other edges don't appear selected as there is a second vertex that appears to be in the same position as the one you have selected. If you move the selected vertex you will find it moves away from the other one.
The easiest solution is to select all vertices and Remove Doubles. If that doesn't merge anything you can press F6 and increase the merge distance. Don't go too high or you can merge the entire mesh.

Another option is to select the nearby vertices and manually merge them together with AltM
When you get vertices close together you may find it easier to switch to wireframe display to select the vertices.


text:
Texture baking in cycles
I checked blender Cycles todo and Blender road map but I can't find any word about this feature for cycles. Is there a plan for that in near future?

I don't think questions like these should be here, since the feature isn't present yet. You could and should try the mailing lists or IRC for queries pertaining to things like these..

I thought priciples of this page are  create as many answers as possible and answer stay there for ever.I don't want to bulling anyone to get that feature to blender I'm happy as it goes now.Developers doing awesome job.Every release has new features etc.I just wondered if baking on the schedule.

Utas, it is only my opinion, having some experience on sites like these. This is localized and unlikely to be of much assistance to anyone in the future as the feature hasn't even been fully planned yet and as both answers say below there isn't a set date either. Also the purpose of this site is to create a compilation of answers, not todo lists or feature requests etc.

ok I keep that on mind next time and I try to come up with smarter question.

@Utas Texture baking in Cycles is on the way now.

There's only few people who can handle Cycles code well, their time is spent mostly on keeping the system stable and well supported. New developers are being introduced now, but there's always need for more people here.
Another issue is priority & focus... Cycles main target is to be a "production rendering" environment. Rendering with baked lighting is not commonly regarded as a good workflow, for that development time can be better spent on advanced optimizing (caches etc). The main use case is for making light maps for game environments, which is very relevant but not on the first priority list for the current core devs.

The feature currently isn't supported and there are no short term plans to add support, however this will likely be added at some point.


text:
Adding checkbox to Output Panel
I'm working on pipeline integration addon for a studio. It resolves variables in output path. Everything works nicely. But i want to add little checkbox below the Blender's parameter that would show to user resolved path when checked.
Is it possible to inject something to the existing UI panel? Or override it?
Thanks

Yes, use append or prepend
e.g. bpy.types.VIEW3D_MT_view.append() or bpy.types.VIEW3D_MT_view.prepend()
check the addon_add_object.py Python template

thank you! append worked perfectly


text:
How to optimize assets like fences which curves involved without losing a lot of quality?
I was making a fence for an UE project but the triangle counts are too high even with decimating it only goes down till 200k triangles which is still a lot for an asset that there will be used multiple times in a scene. I also tried decimating with Planar -> Sharp but it also was only able to bring it down to ~500k without losing quality. I want to learn how to optimize assets like these.

You can control both resolutions, for the curves and for the profile curve. You'll have better control on the geometry than with a decimate, and it'll be faster to compute too. Any reason why you are not changing the curve resolutions ?

You either make it with geometry or with alpha and normal maps. If you make it out of geometry, this will need a lot of it no matter what you do. You cannot get good results with decimation here - it would be a better option to manually model it with the least amount of deliberate geometry that can hold the needed forms. Some sort of instancing may help with memory for something like this that only has a small unique part repeating a lot but how instances work in UE is off-topic here. Share the .blend file if you wish more specific help about optimal topology.

@Lutzi that's because I am a newbie and still in the beginner learning phase. I didn't even knew that was an option lol.

@MartynasŽiemys I would love to learn how to do that, it seems it would be better if I make it with alpha and normal maps. Can you point me to some tutorials/resources to get started? That would be very helpful. As for instancing in UE I can figure that out on my own. Thanks!

Curves have resolution, you can tweak it in the Data panel (green curve icon). For the profile, you probably want it to be as low as possible, 1 (square shape).


text:
How to prevent Geometry Proximity from working on multiple instances at once
Going to try this again from scratch, to see if I can hit the "golden mean."
So I'm having an issue with a Geometry Proximity system that seems to be affecting 3 instances at the same time. Each of the instances is a block of random cubes of varying dimensions, set up so that they don't overlap or leave gaps. The blocks are all 10x40 meters in size, the smallest cubes are 2x2x2 meters.
Here's an illustration of the problem, with the proximity sensor (a set of empty axes) highlighted in orange:

The proximity sensor node tree group is here:

And here's how it fits into the node tree (showing the 4mx4mx2m cube generator for simplicity). It controls the scale of the cubes based on their proxmity to the empty axes:

The trouble is, I want to duplicate the original, randomly generated, 10x40 block of cubes, so it will loop smoothly. (The empty axes starts at the right, moves through the center block, then resets). The trouble is, if I just instance the whole 10x40 block and use Transform Geometry to move them to the left and right, the empty seems to work on all three instances at once. If I instance the center the 10x40 block as a point cloud, each instance creates a different arrangement of the cubes, spoiling the seamless loop.
My question is, how do I copy the center 10x40 block without creating a new random arrangement, and in such a way that the proximity sensor doesn't work on all three copies at once?
( Ed note: Hopefully this strikes the right balance between easy to read, and detailed enough to understand the problem!)

Well... if you're setting scale before and copying later, you're clearly copying the scales.
Copy first and scale later:

Option 1, copy points

Option 2, scale after copy instances

Very useful node trees! My problem always was trying to copy the center volume of cubes without it rerunning through the random creation and creating entirely new arrangements. That's fine if I want to do just a one-off animation, but for a loop, at least the front and the back have to be copied and added to the end of the "original."
The node tree is a kludge anyway (as you've probably seen!) I need to clean it up BAD. That'll be a perfect opportunity to try your ideas. Thank you!!


text:
Storing point cloud data from a repeat zone
So here's a programming question that takes me into the advanced areas. I'm generating multiple sets of points from a Mesh to Points over several Grid objects. I'd like to use a Repeat Zone but am not sure how to store a whole array of point data within the Repeat Zone to use outside of it. Right now, this is what I have:

Where each point set goes to a 2x2 geometry generator, and the majority of points end up in Set 4, which is just 1x1 cubes. This can be seen in the picture above. (There are gaps because one of the 2x2 generators hasn't been set up yet).
What I want to do is do it this way instead:

The question is, what node would I use to store the point data from each set? "Store Named Attribute" is an obvious choice, but it doesn't index each point set automatically, and I am honestly not sure if it can store a whole array of data from a point set. Maybe storing the points by instance index instead (since the points themselves are instanced to a mesh) would work? But even that, I've no idea how to go about doing it.
Any suggestions here?

If you're going to give different uses for each set, is there a point in making a repeat zone? If each set is going to be the input of the same procedure, then you can put the entire procedure inside the repeat zone.

One alternative is to convert a set to instance, and join the instance into the repeat geometry (input geometry is empty, output geometry is join input + instanced set)
Another alternative is to store the "index of the iteration" in the points (pull an index starting at zero from the repeat zone and add 1 before connecting to the output). Use "selections" in the attribute node instead of separating geometry.

Each of the sets of points is going to an entirely different 2x2 geometry generator, with the remaining points (the inverted output) going to 1x1 cubes. So each geometry generator needs a unique set of points that do NOT overlap with the other sets, thus why I chained the Select Geometry nodes together with random values plugging in. The geometry generators aren't identical, so I can't simply stick them all in the repeat zone. Each set of points the repeat zone generates needs a unique identifier of some kind to plug into one of the four geometry generators.

Honestly, there is no point in creating a repeat zone here... Just extra work for no true benefit.

If the issue is organizing, create a "node group" and make each set have its own output socket

Thank you! You're right, I'm just trying to stretch my knowledge here. But chained Select Geometry nodes are perfectly okay and do the job. Sometimes, it doesn't matter if a solution is elegant or inelegant, long as it WORKS.

Instance collection solution
You can do it transforming each set into an instance:

Create an incremental index in the loop (you will need it to provide different seeds to the random node)
Separate the set
Transform the set into an instance
Join the instance into the "sets" collection (starts empty)
After the loop, add the remaining set

To use, you will have to separate the "instance" that has the desired index and then realize the instance.

Named attribute solution
You can also store a named attribute to each point.

Starting adding the final index to all points (they will be the only ones selected for changing the index, and will also be the remaining set)
In the loop, have the index that you will use as seed and also as the stored set attribute
Select the points among the ones that have the last index (don't want to change the other sets)
Store the new index

To use, separate the points that have the desired set index.

Thank you very much!! Yes, it's more complex than just a chain, but far more flexible and it's a good exercise to learn how repeat zones work!

@ArchibaldMirenopteryx, great. If you consider this answers your question, please click the "answered" checkmark.

Done! And thank you again!


text:
My render is black
I just started using blender and I'm using the mesh Suzanne monkey as a practice tool and whenever I go into the render viewport. it always appear black. ive watched YouTube videos and all but nothing is working....im using Blender 4.3. I have tried changing the scene world the lights and everything

Please at least include a screenshot of your Blender screen which you can create from Blender's Window > Save Screenshot menu. Then follow How to upload an image to a post. It would also help to share your Blend file here.  You can share it via https://blend-exchange.com/ following the instructions there to copy the full link on that page. Then edit your question here and paste the link into it.

hello please share your file: https://blend-exchange.com/


text:
XNA model's transparent textures are white Blender 2.8
I have no idea how to fix this problem, this is what I get every time I try to render with Cycles. I use Blender 2.8. I also added a picture of the nodes, if that helps.
Rendered:

Node setup:

How would I change that? I'm pretty new to Blender 2.8, so forgive me if my knowledge on it is not that great.


text:
blender render side tab
One of my friends' side tab disappeared. Does anyone know how to get it back?

Just find one of the corners in the view port, and click and drag it inwards. Then change the editor to "Properties".


text:
My object is not moving smoothly, but in increments of one unit
What is preventing my objects from moving smoothly? Instead of moving slowly and precisely, the object moves by one unit

.

are you talking about an animation or just moving objects in the scene? You must have enabled the Snap option (magnet icon button) / Increment (grid) mode

Hit shift+tab while in object mode to Exit Transform Snapping
For 2.79

(source: blender.org)
For 2.8

maybe explain why it will fix the problem  ;)


text:
Why is my render taking so long?
My interior is rendering almost two hours and it shows only 2 samples that have been rendered. I don't quite know how to select properly those render settings to make good quality interior scene.
Here's what I've done:
samples: 2600
resolution: 1920x1080 at 50%
frame rate: 24

Check out these links. May be helpful: http://www.blenderguru.com/articles/4-easy-ways-to-speed-up-cycles/ , http://www.blenderguru.com/articles/13-ways-to-reduce-render-times/

I'll add those to my answer.

How many frames are you trying to render here, and are they flat frames or multi-layer exrs?

Also, please list your machine specs

It might also be helpful to render a benchmark (like from this one for exampel - http://blenchmark.com) scene on your machine and report the results here. Would give us some context for how good your computer is.

Also, what do you mean by 2 samples? Do you mean 2 frames, or do you mean your first frame has only calculated 2 progressions of sampling?

If you want specific feedback on your actual blend file, you'll need to post a link to it, so we can evaluate and provide advice on the actual file. 2600 samples is fairly high sample rate, especially if it's not your final render for the project (imho).

Well, there's isn't really a magic button you can press to make your renders finish and clean up faster, but here are a few points that may help, or may not.
Hardware
The main thing that comes to mind is your hardware. If you don't have somewhat nice hardware, you aren't going to get very far.
For the built in cycles renderer, it is good to have a NVidia GPU with CUDA (if you have a nvidia card, learn to setup cuda here). This is much faster than the normal CPU rendering. Having a decent CPU is also good if you don't have a GPU
Scene
Another factor, is going to be your scene. It can really be a lot of things.
Since you said you where doing an interior, that fact that the light will be bouncing around more will slow down your render. If you have complex materials, naturally, it will slow down your render. If you have lots of lights, that can do it also.
There's really lots of stuff it can be. Without knowing more about your system and scene, it's really hard to say.
Render Settings
Another big factor to consider are your render settings. Number of light bounces, number of samples, and resolution. High light samples are commonly seen as being the source of lengthy render times, but resolution is another significant factor. For a scene I was rendering at 1920x1080, it was taking around 5 minutes per frame. I reduced the resolution to 1280x720, and it reduced the time it took to render each frame to 30 seconds. Consider reducing your resolution if where you share/use the file doesn't use or need the extra pixels.

This article should give you a few extra pointers on what you can do to speed up cycles.
And for Blender Internal, this article could help out a bit also.