text:
Created Bezier Curve doesn't link to scene
I would like to start by expressing my gratitude to this community for providing solutions to programming problems related to BPY.
I usually find answers here without submitting my question, but this time I am a bit stumped, the solutions to similar problems didn't yield result I was hoping for.
I am trying to piece together a small blender 2.79 addon for handling Bezier curves. It would draw the curve I need, small piece at a time, based on the origin point, distance and angle I provide. On start-up, addon creates the first curve segment by invoking the operator. Then the user can fine tune settings in the tool panel, when satisfied with current segment, user can add next segment with a button press, that yields next segment, taking previous endPoint as new origin for new segment.
The problem seems to be, that the first segment is created, is linked to the scene, it shows on the screen, but as soon as I try to manipulate it, it doesn't show up in context.scene.objects list.
Here is the code:
bl_info = {
    "name": "Bezier Piecewise Segments",
    "author": "i",
    "version": (1, 0),
    "blender": (2, 79, 0),
    "location": "View3D > Add > Curve > Piecewise",
    "description": "Adds functionaly adjustable bezier segments",
    "warning": "",
    "wiki_url": "",
    "category": "Testing"
}

import bpy, math, mathutils
from mathutils import Vector

pointCloud = [
    [Vector((0, 0, 0)), Vector((-0.0707, -0.0707, 0)), Vector((0.0707, 0.0707, 0)), 'FREE', 'FREE'],
    [Vector((0.3536, 0.3536, 0)), Vector((0.2828, 0.2828, 0)), Vector((0.4243, 0.4243, 0.0000)), 'FREE', 'FREE']
    ]

def getEndPoint(origin, radius, angle):
    return Vector((
        origin.x + radius * math.cos(math.radians(angle)),
        origin.y + radius * math.sin(math.radians(angle)),
        0
        ))

def get_curve_object(objectName):
    bpy.ops.object.select_all(action='DESELECT')
    ob = bpy.data.objects.get(objectName)
    if (ob.type != 'CURVE'):
        return
    bpy.context.scene.objects.active = ob
    bpy.ops.object.select_pattern(pattern=objectName)

class AddSegment(bpy.types.Operator):
    bl_label="Adds segment"
    bl_idname="curve.add_piecewise_segment"
    bl_options={'REGISTER', 'UNDO'}

    startPoint = bpy.props.FloatVectorProperty(name="", subtype='TRANSLATION')
    length = bpy.props.FloatProperty(name='', default=0.1, step=250, precision=2)
    angle = bpy.props.FloatProperty(name='', default=45, step=500, precision=1)

    @classmethod
    def poll(self, context):
        return context.scene

    def execute(self, context):
        objname = 'NumChuck'
        #get_curve_object(objname)
        objectdata = bpy.data.objects.get(objname, None)
        if (objectdata == None):
            curvedata = bpy.data.curves.new(name=objname, type='CURVE')
            curvedata.dimensions = '3D'
            objectdata = bpy.data.objects.new(objname, curvedata)
            objectdata.location = (0,0,0) #object origin
            bpy.context.scene.objects.link(objectdata)
            control_points = curvedata.splines.new('BEZIER')
            control_points.bezier_points.add(2)
            scene = bpy.context.scene
            #scene.objects.link(objectdata)
            scene.update()
            bpy.context.scene.objects.active = bpy.data.objects['NumChuck']

        objectdata = bpy.data.objects.get(objname, None)
        curve = bpy.data.curves[objname].splines[0]
        control_points = curve.bezier_points
        for num in range(len(pointCloud)):
            control_points[num].co = pointCloud[num][0]
            control_points[num].handle_left = pointCloud[num][1]
            control_points[num].handle_right = pointCloud[num][2]
            control_points[num].handle_left_type = pointCloud[num][3]
            control_points[num].handle_right_type = pointCloud[num][4]
        objectdata = bpy.data.objects.get(objname, None)
        bpy.data.objects[objname].select = True
        bpy.context.scene.objects.active = bpy.data.objects[objname]
        scene = bpy.context.scene
        #scene.objects.link(objectdata)
        scene.update()

        return {'FINISHED'}

class RemoveSegment(bpy.types.Operator):
    bl_label="Removes Segments"
    bl_idname="curve.remove_piecewise_segment"
    bl_options={'REGISTER'}

    def execute(self, context):

        return {'FINISHED'}

class BerzierSegment(bpy.types.Operator):
    bl_label="Complicated Bezier"
    bl_idname="curve.control_bezier"
    bl_options={'REGISTER', 'UNDO'}

    curve_segment = bpy.props.IntProperty(name='', default=0)
    origin = bpy.props.FloatVectorProperty(name="", subtype='TRANSLATION')
    magnitude = bpy.props.FloatProperty(name='', default=0.5, step=25, precision=2)
    direction = bpy.props.FloatProperty(name='', default=45, step=500, precision=1)
    segmentType = bpy.props.EnumProperty(
        name='', default="Straight",
        items=[('Straight', 'Straight', ''), ('Curved', 'Curved', '')])
    curveRadius = bpy.props.FloatProperty(name='', default=1, step=500, precision=2)
    endPoint = Vector((0,0,0))

    def draw(self, context):
        layout = self.layout
        row = layout.row(align=True)
        row.label("Origin")
        row = layout.row(align=True)
        row.prop(self, 'origin')

        row = layout.row()
        row.label("Magnitude")
        row.label("Angle")
        row = layout.row()
        row.prop(self, 'magnitude')
        row.prop(self, 'direction')

        row = layout.row()
        row.label('Curvature')
        row.prop(self, 'segmentType')
        if self.segmentType == 'Curved':
            row = layout.row()
            row.label("Radius")
            row.prop(self, curveRadius)

        row = layout.row()
        op = row.operator(AddSegment.bl_idname, text="ADD")
        op.startPoint = self.endPoint
        op.length = self.magnitude
        op.angle = self.direction
        op = row.operator(RemoveSegment.bl_idname, text="REMOVE")

    def invoke(self, context, event):
        return bpy.ops.curve.add_piecewise_segment()

    def execute(self, context):
        scene = context.scene
        objs = [ob for ob in scene.objects]
        #active = [ob for ob in objs if ob.active]
        print('objects: ', objs)
        #print('active: ', active)
        endpoint_idx = self.curve_segment + 1
        self.endPoint = getEndPoint(self.origin, self.magnitude, self.direction)
        handleLength = 0.1
        handleLeft = getEndPoint(self.endPoint, -handleLength, self.direction)
        handleRight = getEndPoint(self.endPoint, handleLength, self.direction)
        objname = 'NumChuck'
        objectdata = bpy.data.objects.get(objname, None)
        curve = bpy.data.curves[objname].splines[0]
        control_point = curve.bezier_points[endpoint_idx]
        control_point.co = self.endPoint
        control_point.handle_left = handleLeft
        control_point.handle_right = handleRight
        control_point.handle_left_type = 'FREE'
        control_point.handle_right_type = 'FREE'

        return {'FINISHED'}

def append_to_menu(self, context):
    self.layout.operator(
        BerzierSegment.bl_idname,
        text="Piecewise Bezier",
        icon='PLUGIN')

def register():
    bpy.utils.register_class(BerzierSegment)
    bpy.utils.register_class(AddSegment)
    bpy.utils.register_class(RemoveSegment)
    bpy.types.INFO_MT_curve_add.append(append_to_menu)

def unregister():
    bpy.utils.unregister_class(AddSegment)
    bpy.utils.unregister_class(RemoveSegment)
    bpy.types.INFO_MT_mesh_add.remove(append_to_menu)

if __name__ == "__main__":
    register()


text:
Certain objects are appearing larger and another has appeared post render
I'm relatively novice to Blender so I've struggled searching for a solution to the problem.
Certain objects, including the plane that the scene is on, have scaled up after rendering and a breadboard has appeared out of nowhere. I've looked through my scene collection and there are no unchecked eyeballs or cameras (which was a solution to other people's randomly appearing objects).
This is what the scene looks like;

and this is what it looks like rendered;

I'm not sure if there's any setting I should be including in this post.
Apologies if this is a dumb mistake and an easy fix, thank you in advance for any support.

Hello could you please share your file? (remove all the useless objects)

Hi @moonboots, thank you for offering your support. Below is the linked file. I've removed everything bar wires and resistors. I've set the camera up and scaled up the light blue wire as an example of the render not reflecting the 3D viewport scene.
https://www.dropbox.com/scl/fi/10s0yegk7m4n6l7qxlgp4/circuit.blend?rlkey=o1jq9snia76r1gbaaal4cwe8m&dl=0

I can't see any difference in size, see a comparison between preview and render: https://zupimages.net/up/23/48/833k.jpg

Regarding the objects appearing larger, I think you may just be zoomed in a bit in the Render window. Try to press the Home key to see the whole render.
The hidden object that shows up in the render is most likely the disabled object called HP, since its name in the Outliner is gray. This is done using a third button that is hidden by default. To show it, open the Restriction Toggles menu in the Outliner, and enable the button shown in the screenshot below.

As you can see in the next screenshot, a third column shows up on the right of the object names. When this button is toggled off, the object name gets grayed out, and the object gets disabled in the viewport. You just need to enable it if you want to see it in the viewport, or disable the button to its right (which looks like a camera) to disable the object in the render to match the viewport.

Edit: It seems that there are animations that were added to some of the objects by mistake. To remove them, follow the steps below.

Any object that has a curved arrow to the right of its name is an object that has an animation.
Press the folding arrow to the left of its name to expose its content.
Right click the animation, and run Clear Animation Data.

Hi @Mr A, thank you kindly for taking the time to answer my questions - you solved my hidden object problem. I tried using the home button to reset any accidental zooming in but the rescaling of objects post rendering issue persists.
I gave up trying to find a simple solution and resized all the problematic objects again (mainly the Bezier curves that I'm using as wires and my resistor model objects). Unsurprisingly upon rendering the same issue occurred again and after closing the render window the objects that I'd 'fixed' had reverted again to a distorted scale

Looking back at your screenshot, it seems that you have animations on them which will overwrite your edits (unless you key them). I will add a screenshot showing how to remove them.

source: Stack Exchange

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

sort: votes


text:
Help me fix merged actions on export
I have a problem with blender, when I export my actions the poses are getting merged. I have tried to export "all actions" and then "NLA strips" , but I see the same error when I import the fbx to Unity. I tried creating a new basic model with 2 bones for a test and the same error happens there. Please help me fix this

What do you mean “the poses are merged“?

The poses were combined before. I exported a mesh with 2 different poses and each of them was a combination of both poses. I managed to fix it now by checking Force Start/End Keying in export options

I have found my problem, I needed to check Force Start/End Keying in export options under the File Browser side bar Bake Animation.

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


text:
mesh with weights, but some vertices not work correctly
the model from DotA2 that i extract the game source file

Hello, if some vertices are not correctly assigned, remove them from all groups and reassign to the correct group?

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


text:
Could someone please explain gimbal lock?
I have read the Wikipedia page on gimbal lock, and am still confused about the entire matter.  My understanding is that, using a local coordinate system, if you rotate a model about its X axis then its Y and Z axes experience gimbal lock, and become "locked" together.  However, my understanding is that if you rotate the X axis, then both the Y and Z axes rotate with it, and as such remain separate.  Wikipedia, as always, while a good resource is difficult to understand on this topic.  Could someone please endeavor to explain this to a person who does not have a Master's in physics or mathematics?

I gather that it's an inherent weakness of just storing three axial rotations (Quaternion, on the other hand, also evaluates orientation value).
(Per ideasman42's comment): We can easily see this for any object using Euler rotational system, by manipulating the rotation widget with transformation orientation set to Gimbal. It turns out to be easy to reproduce, by manipulating 2nd axis in the evaluation order (Z for XZY, or X for ZXY, etc.). I get the following condition on XYZ order by just manipulating Y axis:

Here's an article and a video for alternative explanations of the condition.

Suggest trying the Gimble manipulator Orientation Mode and enable Rotate, then you can see the problem that happens when 2 axis line up.

@ideasman42: That's a good demonstration tool.
I think what's not readily apparent is why those axis can line up. One tends to picture Euler rotational axis as one rigid body with three perpendicular lines, rotating in unison, while the implementation is not that simple.

Gimbal lock does not arise because the axes are calculated sequentially. It has been proven that any rotation representation with three numbers will have a lock or singularity somewhere. You seem to imply that in the 3rd sentence too but it contradicts the 2nd?

That means my own understanding of it is faulty. I was trying to put it in the simplest phrasing possible, and based my words on the way others describe it.
The article I linked above said, "Any system that uses Eular angles (Maya, Max, Lightwave, Softimage) will have problems with gimbal lock. The reason for this is that Eular angles evaluate each axis independently in a set order." Then I add a second paragraph that purportedly linked the locking to evaluation order.

If there's a better and more correct way to explain it in layman's term, I'd really like to know and amend accordingly. I've had many animators struggling to wrap their head around the concept, and found myself constantly looking for better, simpler ways to explain it.

I don't have a good simple explanation, and it's not really wrong to state that gimbal lock specifically happens because the axes are evaluated sequentially.
The way it is contrasted with evaluating the axes all at once just seems a bit misleading, doing that would come with its own unintuitiveness and locks. Rotations are just inherently difficult.

I'll just erase the problematic sentence, then. Thanks, Brecht :)

First, I recommend looking at the Guerilla CG video that explains The Rotation Problem as it relates to 3d animation. This is important because it explains why Euler and Quaternion rotations are different. Unfortunately the only available copy has very poor A/V sync.
Cut to the chase in Part 2: Euler (gimbal lock) Explained

4:18—All together there are 6 parenting combinations to choose from. In each case gimbal lock occurs on the parent when the middle axis is rotated too far.

excellent video, highly recommend others check it out, though the web.archive link is broken.

Still works for me. Anyway, I just realized that the first answer already linked a YouTube version which actually does have synced audio. So my answer is kind of useless.

I'm a half-reformed pedant.  I want to use terms precisely and unambiguously.  And it seems that the only "right" meaning for a term is how it's used, in the context in which it is used.  But the way that "gimbal lock" is used in 3D often just translates to "everything about Eulers that I don't like."  Even among experienced artists.  I've even heard people blame gimbal lock for issues they've had with quaternion rotations!
Part of the problem is the metaphor used to describe this "trouble with Eulers."  A gimbal is a physical thing.  Engineers build them.  They respond to forces.  At certain orientations, they get locked and stop responding to components of those forces.  Before they reach those orientations (or after, if they could ever get there), they work fine.  Few people have ever even touched one.
In 3D, our commands aren't forces.  Bones and objects do what we tell them to do-- exactly what we tell them to do, whether we meant to or not, like petulant children.  They never get locked and stop responding.  The trouble with Eulers isn't limited to some particular orientation like it is with gimbals.
So I think if more people want to understand gimbal lock, ie the trouble with Eulers, it's worth it to take a step away from that particular "gimbal lock" metaphor and embrace a new one.  I'll talk about the same things people mean by gimbal lock, but I'll talk about them differently-- hopefully, in a way that makes more intuitive sense.
A different metaphor than gimbal lock
Let's imagine we're in an airplane.  Most of us have been.  Earth is a sphere; as we fly over its surface, we're rotating about its center in three dimensions.  We want to get from one place to another.  How do we get there?
Problem #1: Torque.
Let's say we're in Nigeria, and we want to get to Nepal.  We break out an equirectangular map of the world, plot a straight line between them, and then we fly that path.  But we find that we keep turning to our left during the flight.  And at the end, we've used more fuel that we ought to have:

It's a straight line on our equirectangular map, which divides latitude and longitude into equally sized sections.  This is just like Euler rotation about the Earth, which interpolates by dividing rotation in orthogonal axes into equally sized sections.  We have a starting latitude and longitude; we have an ending latitude and longitude; we interpolate linearly between them.  But because our equirectangular map is a distorted map of the Earth, a straight line on that map is not the same thing as a great circle about the center of the Earth.  We're not following the great circle I'm showing as a halo around the Earth.  We have torque.
The reason for this torque is that all of the latitude lines on our equirectangular map are the same length.  But on the sphere, in reality, the latitude lines get shorter as we move away from the equator.  If we interpolate latitude at the same rate that we interpolate longitude, we'll have torque.  If we wanted to avoid torque, we'd have to adjust how we interpolated latitude, on the basis of longitude, or vice versa; we'd have to do so continuously, in order to get an exact great circle.
We don't have to be rotating about the Earth for this to happen.  All 3D rotations describe paths along spheres.  And no spheres can be mapped onto flat planes like this, not free of distortion.  So all Euler rotations have this kind of torque.  Euler rotational triplets work fine, right up until we interpolate them.  When we interpolate them, we find that they're giving us rotations that are distorted in the exact same way that an equirectangular projection is a distortion of the surface of a sphere.
Importantly, notice that we haven't even rotated 90 degrees!  Our starting position is pretty damn close to the rest pose of these bones.  (My bones' rest positions are in world axes, and we're looking down the -Y axis.  We're starting from Nigeria for convenience's sake, based on the Wikipedia image I downloaded to build this.)  When we use Euler angles, we see torque with any rotation that exists in more than one axis. But, we'll see more torque as we get closer to the North Pole:

The lines of latitude don't change size at a constant rate.  They get smaller, faster as we reach the poles-- the distortion on our 2D map increases as we travel further from the equator.  So even though there's no special angle that this happens at, it's fine at the equator-- at a single axis of rotation!-- but it's really bad as we approach rotations of 90 degrees.
And this is why we want to use quaternions in certain situations.  They don't create any such torque.  Let's look at the same rotation, interpolated via quaternion, mostly because it will prepare us for the next trouble with Eulers:

Unlike the Euler plane, the plane that is navigating by quaternions describes a great circle.  Its path isn't straight on our equirectangular map, but it follows the great circle on the globe.  Our Euler navigator will see the quaternion navigator going a completely different direction, but arriving earlier, with more fuel.  They'll look at their equirectangular map, dumbfounded how a curved path could be shorter than a straight path.
Problem #2: Aliasing.
"Aliasing" here doesn't mean jagged lines, just like "rendering artifacts" doesn't mean that you're suddenly getting the Hand of Vecna in your image sequence.  Aliasing means that something goes by different names.  Just like Jay Z is Shawn Carter and also HOV.  It's just three different names for the same person.
Euler angles are the same way.  Some rotation might go by different Euler "names".  That is, there are different combinations of Eulers that can describe the exact same rotation.  Like, this XYZ 180,0,0 misshapen monkey is in the exact same rotation as this XYZ 0,180,180 misshapen monkey:

One rotation, two different Euler aliases for it.  And the axes of rotation seem to have blended together.
One fairly obvious place this happens is at the North Pole.  On our globe, it's a point; on our flat map, it's a line.  But this happens elsewhere as well.  Let's look at how that might play out in our airplane, on the map of the world, by taking a longer trip:

Now, we're flying all the way to Alaska.  And you'll see that I used a second map of the world to describe our trip.
Think about latitude and longitude.  Longitude goes all the way from -180 degrees to 180 degrees.  But latitude only goes from -90 degrees to 90 degrees.  After 90 degrees of rotation, it's like latitude and longitude become redundant, like they blur into each other.  We could talk about being at lat/long 80,0.  But we could just as easily describe that lat/long as 100, 180.  And at the actual North Pole, we're at latitude 90, longitude anything!  That's aliasing.  We fix that, when talking about locations in the world, by limiting ourselves to latitudes in the -90,90 range, but in 3D, in Blender, we have a full 360 degrees of rotation for every axis; and for whatever reason, Blender doesn't simplify these aliases the same way we simplify the aliases of our latitude and longitude.  And when we think about it, we're sending Eulers of any value: maybe -180,180, but maybe 720 degrees, or maybe 10,000 degrees.  We could think of our map instead as an infinite, tiling plane of maps.
And look at what's happened to our two plane paths on the projection.  Our Euler path is still a straight line, even though appears to cross the pole.  But now our quaternion appears disconnected on our equirectangular map!  Even though it's still a straight line, a great circle, on the sphere.
But if we look closely at that disconnect, we see that the two places are, in actuality, the exact same place.  While it's flying over Greenland, it jumps from one map onto the other map, in the exact same location over Greenland.  There are two different names we can call it, even disregarding Euler order.  One instant, our driver reveals its YXZ rotation to be Y-32 X102 Z131.  The next, Y141 X76 Z-42.  These are very nearly the same rotations, just different by one single frame of travel.
Note what happens to the Euler plane.  It flies onto a new tile, cross the North Pole.  Why doesn't it fly straight on a single tile?  Because of Blender's "anti-aliasing" which doesn't actually remove aliasing at all, it just picks an alias on the basis of a bit more context.  Here, it decided it was better to fly onto a new tile than to explore the "canonical Euler" map that I already had.  And note: even with a single order (these are all YXZ Eulers), there is more than one way to get from here to there.
If all you ever do to animate anything is enter numbers in XYZ rotation fields, you don't ever need to worry about aliasing.  There may be multiple Euler triplets for a given orientation, but there are never multiple orientations for a given Euler triplet.  And if you never rotate anything very far, then you don't have to worry about aliasing: just like on our map of the Earth, it only shows up when the rotations become large.  (But, not at some particular number, not in Blender.)
But if you ever work with drivers or constraints, then you do have to worry about aliasing, because these typically work on orientations, not on raw Euler values.  And so you see problems when you, say, copy rotation in only one or two axes, or without full influence, on a bone that's rotating far from rest.  After a certain point, that rotation suddenly changes, just like our quaternion navigator's path seemed to suddenly change on our equirectangular map.  And that will create sudden discontinuities in animation.
This doesn't mean Euler angles are bad.
There are times that you just can't get away with Euler angles, where any kind of torque is simply unacceptable, or where angles are unpredictable enough that aliasing can cause a problem.  You can't use Euler angles on a Rubik's Cube.  It's just not going to work.
But the greatest weakness of Euler angles is also their greatest strength.  While a perfect ball joint might move in great circles, a human shoulder, under the combined forces of gravity, inertia, and several different muscles, does not.  Often, we want torque, and the nature of Euler angles lets us tune that torque, by manipulating f-curve handles, in a way that quaternions do not easily allow.
More, the alternatives to Eulers have their own issues.  Axis-angle rotation is nice for single axis rotation, or for rotation only from rest, but has huge torque when interpolating between two different rotated states.  Quaternion rotation is unintuitive, and with Blender's implementation, leads to very uneven velocity.  Plus, I don't want to give the impression that quaternions always move in great circles about their centers: the quaternions I made do, because their Y rotation is aligned with their direction of rotation (the plane points to its destination at departure, away from its departure at destination.)
So even though Eulers have these problems, you can't get away with just ignoring Euler angles.  You just have to be prepared for those problems, prepared to make decisions about transformation modes, on the basis of how you're going to want to rotate.
Okay, but is this actually gimbal lock?
Like I said, sometimes when people talk about gimbal lock, they're talking about aliasing.  Sometimes, they're talking about torque.  Sometimes, they're talking about either.  (And sometimes, they're just using a big word as a god of the gaps, to "explain" anything that they don't understand about 3D rotations.)
Now, I don't want to pretend I'm an educated mathematician.  I'm not.  Even if I was, that doesn't mean anything; educated mathematicians disagree with each other sometimes, or say things that are untrue.  You should be skeptical.  The ultimate test of what I'm saying is just whether it works for you or not.
What does Wikipedia say?  If you've followed along, this paragraph that didn't make any sense before, might actually make sense now:

In formal language, gimbal lock occurs because the map from Euler
angles to rotations (topologically, from the 3-torus T3 to the real
projective space RP3, which is the same as the space of rotations for
three-dimensional rigid bodies, formally named SO(3)) is not a local
homeomorphism at every point, and thus at some points the rank
(degrees of freedom) must drop below 3, at which point gimbal lock
occurs.

Torque and aliasing are the same problem, seen from two different perspectives.  The problem is one of mapping between these two distorted spaces.  Torque is what you get with Euler bones, where you map from the flat map to the sphere.  Aliasing is what you get with constraints or with physical gimbals, mapping the other way.
Are these two spaces that I've shown, a globe and a flat map, the spaces that Wikipedia is talking about?  Almost.  They are slices of that space.  Because I have been ignoring "heading", ie Y axis rotation, we've just been looking at a subset of the problem.  But what is true of one slice, here, is true of every slice.  By slicing that space, I think we can understand the problem more intuitively.
It's a lot like when people try to demonstrate relativity with a rubber mat, distorted by mass.  They're showing a 2D slice of spacetime, warped by mass, to demonstrate that there is no gravity-- that orbits aren't circles, but straight lines through spacetime.  And, widely denigrated as it is, that's a great demonstration of relativity, that accurately represents the spaces involved; just as with Eulers, what is true of the slice, is true of all the slices.
Could I show these spaces unsliced?  In one case, I could.  On the flat map, we could consider heading as altitude, and then we'd have a box.  And if we tiled that box infinitely, into a full, infinite, 3D space, we'd have the space of all Eulers.
But in the case of the space of all rotations, I can't.  I can maybe suggest what it would look like, if we imagine a hollow sphere, where altitude inside that sphere represents heading.  But, the inside and the outside of that sphere are continuous and adjacent, not distant.  And, the distance between XZ rotations doesn't get bigger as we change heading, even though it's a sphere.  So any actual picture I showed you of that space would be a mapping, almost as distorted as the Euler mapping, as the equirectangular map of the Earth.
And that shouldn't really be surprising, when we consider what we already know: to represent straight lines in the space of rotations, we need 4-dimensional vectors-- aka, quaternions.
Screw the math.  What does gimbal lock mean for me, as a 3D animator?
If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved.  They will be more curved when your 2nd or 3rd axis gets close to +-90 degrees rotation and less curved when you get close to 0 degrees.  But they will be curved, at any non-zero values.
If you use constraints that turn rotations into Eulers, or transform channel drivers, you will experience discontinuities in the output.  These discontinuities are hard to predict, but will not occur before 90 degrees of rotation.
If you want to use Eulers, choose your primary axis wisely and avoid large rotations.
Do not think that you can split an Euler into halves, or double it, or reasonably split it into components, or anything else.  Because these are curved rotations, half of your Euler components are a rotation in a different axis than all of your Euler components, and so on.
You can represent any particular rotation using an Euler triplet, of any order.  There are no rotations that can't be represented.  The opposite is not true: you cannot represent any particular Euler triplet from a rotation.

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


text:
How to convert sapling leaves to linked duplicates?
Is there some way to convert many separate pieces of geometry inside one object to many linked duplicate objects?
For instance, sapling results in leaves that are all inside one object.
I want to somehow use the normal and position of each leaf/face to define the rotation and location of new linked objects.
Is this possible?

Getting the location is very easy but getting the rotation is not.
I don't know if you need the leaves to be rotated exactly as sapling generates them, but there is another way to achieve a very similiar result (if not even better) and have all leaves instanced.

Go into edit mode -> select all faces -> press P> By loose paths

To recalculate origins, press ShiftCtrlAltC and select Origin to Center of Mass

Now link all the objects to one leaf with CtrlL

Before the next step, it is important to hide everything because we will be using Proportional editing in object mode to randomize the rotations

Turn on Proportional editing (blue circle or shortcut O) and set its Falloff to Random

You also need to set the Pivot Point to Individual Centers

Then it's time to rotate either way you wish, rotation of the other visible objects will be randomized. This is the result after hitting AltH to unhide the trunk

This step is just an extra, to hide all the dotted black lines (relationship lines) you can uncheck them in the 3D View's N menu under the Display tab

This is it!
Could you elaborate why you need this? Maybe there's a different solution to the problem and this is an unnecessary step. For example you can get the rotation data through Geometry > Normal in the node editor for setting up materials.

Ok So I've finally came up with the real answer to this question. The answer is Duplifaces.
Make the sapling object.
Then create a simple plane that is going to be the duplicated leaf.
Select first the leaf then the sapling object.
Ctrl+P to parent to sapling object.
Then in the Properties window under Object under Duplication select Face.
With this you can always use "Make duplicates real"
Unfortunately this still won't work perfectly for the leaves (the stem might be on different sides).. but unless you dig into the sapling code I am afraid it's not possible to somehow reverse determine that data.

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


text:
Increase cycles speed for interior render
I modeled a house and wanted to render the rooms from the inside with the approximate sun lighting through the window. However cycles is incredibly slow in doing that. What should I change to increase my render speed? I am okay with sacrificing quality for it as it is not yet my final render and I am still planning the room layout.
The room is physically correct with ceiling and floor (cube with multiple small holes in it). I'm rendering in perspective mode using Cycles.

How is your room set up? Is it completely physically realistic (with a ceiling?), or is it open-roof? Light sources and samples contribute to slowing down the render, but there's not necessarily a safe way to cut down on them without decreasing the quality of your scene. In addition, are you doing an orthographic top-down floorplan view, or are you doing a variety of perspective views?

changed my answer to include that question. For the orthographic floorplan view I am using freestyle. Decreasing quality is not a big problem.

Can you add a screenshot to the question?

It sounds like you are using a sun lamp for it, that really slows it down. So the only thing I can add to Gwenn answer is: for interior renders, use planes with an emission shader in every window hole, and disable the "camera" option in the "ray visibility" panel in the object properties so you don't see it when rendering. You can combine that with a sun lamp if you want hard edge shadows coming from the sun.
I use this method a lot and it really speeds things up.

This. Lighting setup has a huge effect on performance. If you are relying on bounced light from the outside to give you good illumination of a room, then it will be slow and noisy. Adding emitters (lamps or mesh) inside the room is the best way to cut down on the noise and the rendering time.  Combine this with a decreased bounce setting, the render time should improve a lot.

Emitters in windows are a manual replacement for light portals. Other relevant tricks from the Cycles documentation are smooth light falloff and filter glossy options.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Reducing_Noise

Would it somehow be possible to du a preliminary render to get the approximate lighting and than use the walls as diffuse emission sources themselves with the light that fell on them during the preliminary render? (All of the Materials used are diffuse) This should probably be a new question

There are a number of things you can do to reduce the render time in Cycles. Here are a few that I frequently use:

Reduce resolution: If you can get away with a smaller output image, or if you're just doing a test render, set the 'Percentage scale for screen resolution' to something low, like 25% or 50%.
Decrease the number of faces: On small items that don't need an excruciating detail, instead of using a subsurface division modifier, set the shading to 'smooth' and consider using a decimate modifier to reduce the number of surfaces that light has to reflect off of.
Switch to GPU rendering: In the User Preferences view, go to the System menu. Under 'Compute Device', select CUDA. Then, when you go to render, in the Device dropdown, you'll have the option 'GPU Compute'. (This only works if your computer has a GPU with a CUDA compute rating of 2.0 or higher.)
Decrease the number of light bounces: If you don't have highly refractive materials, like glass or gemstones, it can pay to reduce the number of light bounces Cycles computes. In the 'Render' menu of the Properties panel, scroll down to 'Light Paths.' If you set the minimum number of bounces to 0 and the max to a low number (like 4 or 5), you should greatly improve your render time without sacrificing too much realism.
Change tile size: In the Properties panel > Render menu, scroll down to 'Performance'. If you're using GPU rendering (see above), set the tile size to 128x128 or so. If you're using CPU, set it to 16x16.
Simplify: In the Properties panel > Scene menu, scroll down and check the Simplify option. This sets global limits on mesh detail size and soft shadow calculation that can really improve rendering time.
Use 'Multiple Importance Sample': For each of your light sources, scroll down to 'Settings' and select 'Multiple Importance Sample'. This greatly speeds up the rendering time for glossy and diffuse surfaces, and allows you to use fewer light samples to achieve the same quality render.

this is a very generic answer that is very well explained on blenderguru. My question was specific to interior as most of the scene is lit by indirect light, I do not understand why you edited the question.

Tests have shown that the larger the tile size, the faster the rendering:
size 128 - 1m 37sec; size 512 - 51 sec. Almost twice as fast. Scene setup: one sun, simple room model, GPU rendering, 4Gb video RAM.

yeah my render slowed down with a low tile size. you need to edit the answer, it's incorrect with the tile size part.

One thing that may speed it up faster than anything else is lowering the bounces. Since the image is interior, you'll have a lot of light bounces greatly increasing render times. To fix this, try setting the min bounce to 3 and max bounce to 4. You won't loose too much realism and if your iterating and rendering a lot, it helps to speed things up.


text:
How to emulate a Number Pad and 3 Button Mouse?
I have a MacBook Pro. Since it's a laptop, it does not have a number pad. It only has the numbers at the top of the keyboard. Can I emulate the number pad so that I can access the hot keys for top view, bottom view, etc...
Also, how can I emulate a 3 button mouse with just my touch pad or a two button mouse?

Blender has options that allow you to emulate both of these features. If you go into the User Preferences view and select the 'Input' tab, you should see a bunch of options on the left side of your screen. To use the numbers across the top of your keyboard instead of a number pad, select 'Emulate Numpad.' To emulate the third mouse button, select 'Emulate 3 Button Mouse.' What this does is allows you to press the Alt key while using your left mouse button, and have it behave just like the middle/third mouse button.

Ultimately however, if you're going to be using Blender heavily, you're going to want to get a real three button mouse and/or a numpad. I would personally heavily recommend getting a USB or wireless three-button mouse from a office supply store--they're really cheap, and it saves a ton of time over the Alt-click setting.

I agree, a keyboard with no number pad is really 'clunky' to use with Blender. I almost never use Blender without an external keyboard that has a number pad.

I actually use one without a number pad now. I very seldom use layers and so I find it faster to just use the top row with Emulate Numpad.

By the way, Blender has excellent multi-touch support—as a fellow MacBook user, I used Blender for quite a while without a mouse at all.

"What this does is allows you to press the Alt key while using your left mouse button" On Linux, holding Alt just allows me to drag the window around... Is there anyway that I can set "Left+Right" as middle-mouse?

Regarding the num pad: Install KeyRemap4MacBook and under "Change Num Key (1...0)" enable "Fn+Number to KeyPad". Also disable "Emulate Numpad" in Blender. This allows you to use the number keys to select layers, and in combination with the fn key to change views.
I also like the 3D Navigation addon. It adds perspective buttons to the tool shelf.

Be advised: DO NOT UPGRADE to macOS Sierra if you want to use Karabiner numpad remapping at this time. In Sierra, the keyboard driver API has been modified making it incompatible with Karabiner. A replacement called Karabiner-Elements is in development, but doesn't currently offer modified key remapping necessary for the numpad emulation to work. Monitor https://github.com/tekezo/Karabiner-Elements/issues/16 for updates.

Very good solution.. However, I guess it is important to have 2,4,6 and 8 keys in analogical ordinance in order to tilt your design a bit, so buying a keypad is necessary.


text:
How do I take a flat model and wrap around an axis like a wheel?
I am making tread for a car and I made a simple pattern for one section and then duplicated it a bunch of times using an array. What I want to do now is take the model that is flat and wrap it around an axis to turn it into a wheel. How do I do this?

You can use a mixture of the curve and array modifier to quickly achieve this.

One way is to just add an Array modifier to your tread or flat object, bump up the counts a bit and add a new Bezier Circle to the scene.

Then add a Curve modifier, select the correct axis (it sometimes wacks out here, you can just apply transformations before you do this) and tweak accordingly until it aligns properly and is arched around a portion of the curve.

Bump up the array count some more and voila, a tire or whatever object wrapped around a circle. (When doing this, you might have to select the curve and scale it accordingly so that the ends of the object meet. You can also tick 'Merge' in the array modifier or use Alt + C to apply the modifiers and convert everything into one object, after this, if a gap still exists, it can be easily filled.

To anyone thinking this looks too much like a tutorial, it isn't. The worded version was too depressing to read, anyways I blame it on the size of the images, they make the post overly long.

I agree, blender is a visual tool. Pure text only answers simply would not be as helpful... +1 in hopes that this becomes the spirit of the  site

This is a good example of one way to make a tire. Is there a more "precise" way of doing this model than using a Bezier curve? I have read elsewhere that a Bezier is not a true circle.

@EthosErlanger Define "true circle", looks pretty circular to me. A query on youtube should get some good results. There are also other answers below.

@iKlsR Yes it looks good.   A circle is π*R Squared. My understanding of a Bezier is that it is a cubic equation that only approximates a circle.

Let's not forget the grandfather: Warp
In edit mode, position the cursor where your axle is supposed to be, select the mesh and hit SHIFT+W. Make sure that your line of sight is parallel to the axle because Warp takes the orientation of the 3d view into account.
This is useful if your mesh contains other parts or you are just too lazy to use modifiers and later change is not necessary.
Use numerical input and finisch the modifier with 360RETURN to get a full circle.
If you want a precise diameter, position the cursor on an outer vertex with SHIFT+S3 and then use the 3d cursor panel to move it down (or move the mesh up with numerical input)

There are a variety of ways of doing this, but one of the simplest is just to use the Array modifier with 'Object Offset'.
Model the object you wish to wrap around and place an empty where you want the center of your wheel to be located. Place your object's center at the same location as the empty (ShiftS>Selection to Cursor (Offset)). Add an Array modifier on your object and select 'Object Offset':

Rotate the empty very slightly, and bring the array count high enough, and the array should wrap all the way around in a circle.

If you want to do further smoothing, you can apply the Array modifier, then use all of the usual tricks (subdivision surface, smooth lighting, Boolean union, etc).


text:
How to toggle between Flat and Smooth shading during animation?
The Edge Split modifier doesn't give me desired results (even with angle set to 0 it looks different).

What do you mean it looks different? Can you post a screenshot comparing the two? There isn't a way to insert keyframes for Smooth/Flat shading, so edge split is your only choice.

Animatable (custom property) toggle
import bpy

def toggle_shading(self, context=bpy.context):
    """Toggle smooth shading"""
    value = self["use_smooth"]
    if self.polygons[0].use_smooth is not value:
        for poly in self.polygons:
            poly.use_smooth = value

def frame_handler(scene):
    """Update shading on frame change"""
    for mesh in bpy.data.objects.data.meshes:
        try:
            toggle_shading(mesh)
        except KeyError:
            pass

bpy.types.Mesh.use_smooth = bpy.props.BoolProperty(
    description=toggle_shading.__doc__, update=toggle_shading)
bpy.app.handlers.frame_change_pre.append(frame_handler)

Paste the script above in the Text Editor, click Register and Run Script.

Text block name must end with ".py" to activate the register functionality (run script on load).

In the Properties Window, under Object Data, Add a custom property with Property Name use_smooth and Property Value of 0.

You can now animate this value the toggle smooth shading.

Thank you, guys! The second one seems to better suits my needs. But I can't force it to work. http://img849.imageshack.us/img849/5430/cjzv.jpg

@Sielan, You added the property to Object not Object Data.

Wow, thanks! Now it works! :) BTW. Is there a way to run this script automatically each time when I load the scene?

@Sielan, that's what the Register check-box does. This feature requires the name of the text block to end with ".py".

@Sielan feel free to accept this as the answer that worked when you are ready.

I still think that edge split is the way to go:

Make sure edge split is the last modifier.
Make sure that it is smooth shaded without it.
Set edge split angle to zero and check the angle.
Add desired keyframes for the angle checkbox.

Frame One:

Frame Six:

Let me preface this with saying that this method won't let you set key-frames with the UI, Aldrik's approach does.
My method lends itself better to a procedural approach to animation where key-framing isn't important. This script accepts a list of start-end ranges, which map to the frame numbers that should be shaded flat or smooth.

Hit run on this script, then start the animation render

script:
import bpy

def list_to_frames(ranges):
    k = set()
    for begin, finish in ranges:
        k = k | {i for i in range(begin, finish)}
    return k

def my_handler(scene):
    frame = scene.frame_current

    obj = bpy.data.objects[obj_name]

    # this assumes you are OK with doing a full sweep
    # and setting all to either smooth or flat.
    if not frame in frames:
        if obj.data.polygons[0].use_smooth == True:
            return
        for poly in obj.data.polygons:
            poly.use_smooth = True
    else:
        if obj.data.polygons[0].use_smooth == False:
            return
        for poly in obj.data.polygons:
            poly.use_smooth = False

frames_to_flatshade = [[20,30],[45,54]]
obj_name = 'Cube'
frames = list_to_frames(frames_to_flatshade)

bpy.app.handlers.frame_change_pre.append(my_handler)

Here's a compacted version of this script


text:
How to draw line between intersecting meshes in Freestyle?
Is it possible to draw a line between intersecting objects? With my current setup, it won't draw anything between them.

As of 2.76, blender freestyle still does not detect edges at intersections, see docs:

No edges at face intersection are detected yet.

A workaround is to create some extra edge (small face, invisible in the final render) on top of the actual intersection. It's not clean, but it somehow works. (note that the edge in the image below is a bit exaggerated. It can be much more subtle.)

Depends on what you want to achieve.
Another idea is to use the internal edge capability of Blender via Render->Post Processing->Edge. If you're rendering out a still image, you can then mask out areas with edges you don't want in the compositor, later.

do you know if it is possible since 2.8 and co?

Not that I know of (plus the docs still say it's not supported).

I use the boolean modifier.
Say object_1 is intersected by object_2:

apply boolean modifier to object_2 and set it's mode to 'difference'

Freestyle will probably put a line between the 2 objects. I've noticed that results can be a little sporadic.


text:
How can I look up or create a shortcut?
The edge slide function for example is only available through edge tool menu (CtrlE) or the search tool (Space)

When searching for "slide" in the preferences / input-tab no reference is found. When I try to add a new one I'm not able to map that function to a shortcut.
Can this be achieved another way?

Edge slide is indeed a special case, triggered through double G (grab mode -> edge slide). For this reason it doesn't show a key map entry.
You can however assign it yourself a key in the input configuration of user preferences. Under 3D View open the Mesh operator tree, scroll down and press Add New. In the first box write "transform.edge_slide", and give a key or key combo to trigger this. After that you should see the shortkey in the operator search menu as well. In the example image below I've used the equal sign.

double G actually does a vertex slide that depends on context. you can also get vert slide with ctrl+V in edit mode > vertex slide. for edge slide you can do ctrl+F > edge slide. Both you can create shortcuts for by right clicking in the ctrl+V/F menu

How did you know that transform.edge_slide was the right keyword? Is this documented somewhere?

@Mike I know this is late, but for the benefit of those in the future: it's in the python api...

It's actually not only defined there, selecting an edge and bringing up the shelf on the left with T, you can find it under Deform, refer to the 2nd image below. This is with 2.67a btw so this might be a recent addition.
You can also Right Click on the a button in Blender to change or lookup the relevant shortcut.

or if none is already present add one.

If you are using recent blender 2.67 or 2.67a, you can call edge slide by pressing double G while edge selected.
Additionally you can use add-on, for this purpose I recommend Quick Tools Add-on by Jonathan Williamson from CGCookie.

In newer versions of Blender, and probably older ones, you can right-click a function and get the option "change shortcut" or "add-shortcut" Then you can move your mouse cursor over that option and press whatever keyboard key or key combination you want to be the new shortcut.


text:
What is Animation Nodes addon used for?
What is Animation Nodes addon used for? Where can I find more information about it?

The Animation Nodes addon (AN) is a "Node based visual scripting system designed for motion graphics in Blender."
It allows the creation of procedural animations. Furthermore, it can achieve many effects that are otherwise only possible through programming.
To get a better impression of what is possible, check the showreels for 2015, 2016 and 2017.
Download Animation Nodes Addon.
You can find the official documentation here. It also includes a list of most of the tutorials creators.
Check the official Blender Artists thread where the community collaborate, share their work and provide information about AN.

Fairly Enough. Thanks Jacques for the nice answer, and the great addon!


text:
Create a shortcut to pause Preview viewport Cycles rendering?
I'm fairly sure to create the shortcut for pausing the cycles preview render starts with wm.context_toggle, but when I put in cycles.preview_pause, an error is thrown, saying that context has no object attribute cycles.
What am I doing wrong?

If you use scene.cycles.preview_pause then it'll work. However it seems the GUI doesn't update. So when you resume the render you'll need to move the viewport momentarily before it will start rendering again. I'm not sure why this is, though.


text:
How do I set a specific render engine while launching blender?
I have noticed that Blender Internal Render Engine is the default engine that is set when launching Blender. Users can change this behavior by setting a different engine and saving the user preferences.
My question is, is it possible to choose the engine to be used by blender when launching blender?

Looks like you figured this out, just note that you can enable addons on startup too:
blender --addons my_render_engine --engine MY_RENDER_ENGINE

If you want to enable multiple addons...
blender --addons my_render_engine,some_other_addon --engine MY_RENDER_ENGINE

Where the add-on list is comma separated list of module names (no spaces), the engine argument works as normal.
See the manual for documentation on these args.

This is a late comment, but thanks for that addon enabling tip.

Yes, it is possible.
There are lots of command-line flags provided by Blender and the flags that are related to rendering engine type are -E engine or --engine engine
So, to launch Blender with the CYCLES rendering engine set, the following command can be used.
blender --engine CYCLES

You can get a list of available engines by using
blender --engine help

or
blender -E help

Example output
found bundled python: /home/satishg/bin/blender-2.65a-linux-glibc27-x86_64/2.65/python
Blender Engine Listing:
    BLENDER_RENDER
    BLENDER_GAME
    CYCLES

[1]    Done                          ~/bin/blender-2.65a-linux-glibc27-x86_64/blender --engine help

Also see related http://blender.stackexchange.com/q/313/12 and http://blender.stackexchange.com/q/80/12


text:
What is the ideal topology for a shoulder joint?
Modeling the shoulder joint of humanoid models is often a sticking point for me, due to the many degrees of freedom a shoulder has, and when rigged, my shoulders often pinch badly. What sort of edge loops and placement is best for that complex joint? Or is this more of a rigging/skinning issue than a modeling issue?

The key with shoulder topology is to represent the deltoid muscle well and to separate the arm mesh from the body. The exact topology will depend on your subject. Most of the time every model will have slightly different topology.
For example, a muscular male will need far more dense and defined topology than a slim female.
The general rule of thumb with topology is to follow the muscle flow. Here is a front, side,, back, and top view of a fairly typical shoulder topology layout.
Things to notice:

The vertical face loop roughly follows the inside and top edge of the deltoid, on both front and back.
The horizontal loop is placed roughly where the deltoid, bicep, and triceps meet.

For a low-poly model I just added two additional edge-loops at the should and ellbow region.
The edge-loops should be added around your bones tip or root which also allows better control in weight paint mode.


text:
Light reflection and refraction in Blender Internal?
I have noticed when trying to make a mirror in Blender that it does not reflect light onto other objects properly.
Also, it seems that setting the IOR (Index of Refraction) for transparent objects does not effect light either.
How do I get reflection or refraction effects in Blender?

You need to use a ray-tracing render engine. Blender's internal render system has a ray-tracer, but it doesn't have the ability to reflect or refract light beams. You could possibly use Cycles for this.

small clarification - blender-internal has a ray-tracer, it just doesn't support this feature.

@ideasman42 What's that supposed to mean?

@Dan the Man Blender Internal has raytracing capabilities, it just doesn't do caustics nor the features wanted in OP

Hmm, according to this question it does not look like refraction is supported (yet).

Refraction is supported in both Cycles and Blender Internal, diffraction isn't.

Refraction is now possible in the Blender Internal engine. Go to your material settings and enable transparency. Change the transparency type to raytrace. Turn the alpha to a low value (like 0) and you should see a refraction effect. You can change the IOR and fresnel too. A good IOR setting for glass would be 1.45.


text:
Cycles Error: Cuda failed to find version number
I am using Blender in Ubuntu with irie ppa. I've installed Nvidia-cuda-toolkit from irie and bumblebee, then I try to render using cycles but I keep getting this error in the terminal:
CUDA version 4.2 detected, build may succed but only CUDA 5.0 is officially supported

After getting this error, I downloaded Cuda 5 from Nvidia website and tried to install it, but instead got this error:
Unsupported compiler: 4.7.2

Then I tried to install with
sudo ./cuda*.run -ovveride compiler

Cuda 5 installed correctly, but when I tried to render again with Cycles I got yet another error message (again)
/usr/local/cuda-5.0/bin/nvcc: 2: /usr/local/cuda-5.0/bin/nvcc: Syntax error: Unterminated quoted stringCUDA: failed to find version number in:
CUDA nvcc compiler version could not be parsed.

I removed the Cuda files and tried to install (again), but before installation I tried to choose gcc-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
update-alternatives: using /usr/bin/gcc-4.6 to provide /usr/bin/gcc (gcc) in auto mode
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
update-alternatives: using /usr/bin/gcc-4.7 to provide /usr/bin/gcc (gcc) in auto mode
sudo update-alternatives --config gcc

and select gcc-4.6 as compiler. After that I try to install Cuda (again) with
sudo ./cuda*.run everything is fine, installation succes.

But, when I try to render my model with Cycles I get the following error (again)
CUDA: failed to find version number in:
CUDA nvcc compiler version could not be parsed.

Can anyone help?

Run nvcc on the command-line with option --version. It should show some version information similar to:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Tue_Sep_25_09:18:50_PDT_2012
Cuda compilation tools, release 5.0, V0.2.1221

The most important part is the last line Cuda compilation tools, release 5.0, V0.2.1221. Cycles looks for the first part Cuda compilation tools, release. If this cannot be found, then Cycles gives up with the error you pasted.
If it is different (and based on your output the entire version string is even empty), then you need to contact the package creator to report a bug.

The full command to try is this: /usr/local/cuda-5.0/bin/nvcc --version. The full path may be needed because nvcc is likely not in PATH.

i 've try the code but i getting error :cannot execute binary file. I think i have installed 64bit driver is wrong. I am using Ubuntu 12.10 64bit but running 32bit program.


text:
Align view to selected operator (numpad .) when scripting?
Whenever I hit Numpad. (align view to selection), it doesn't show up in the info panel. Is there an operator for this, so that I can use it in scripting?

This could be phrased as a more general question since it applies to any menu item you want to know the python command to.

The operator name is bpy.ops.view3d.view_selected(). See my answer here for additional information on this and also how to quickly reach the online manual and the API reference. Here are the accompanying docs for the operator.

Hover over a button and you should see a short description etc.. This
  can be useful for getting operator names.

You can go to the 3d view header and go to View > Align View > View Selected and check the operator name there.

Copy To Clipboard
While your mouse is over the menu item you can press Ctrl + C and the Python command gets copied to the clipboard to save you retyping it.
Log Everything
Some operators are excluded from the report window because typically you don't want setting the cursor (for example) to be logged, however this can be overridden by either...

Starting blender with the command line argument --debug-wm
Running this in the python console bpy.app.debug_wm = True

Then output of all operators executed will be logged in the info space and the console.

I knew about the hover trick, but I couldn't find the "View Selected" operator in the view menu.

You can also search in the Input tab of the user preferences if it has a hotkey


text:
Exporting (bullet) collision shapes
I'm writing a scene exporter from blender to a format to be used by a game. I need to be able to export physics information the game needs, mainly the collision shape of every object (either the one set in Blender Render or Blender Game but the latter is better).
I cannot seem to find anywhere that the collision shape is available to python. I've seen references to PhysicsConstraints.exportBulletFile() but this appears to be under the bge module, which as far as I can tell, is not accessible by exporter scripts. Is there any way to determine the details of a shape (rotation and scale, width, height, depth for box or radius and height for cylinder, vertices for convex hull, etc...)?

Do you need the data from bullet, or can you generate your own shapes? (e.g. for convex hull)

I can (and intend to) generate my own shapes. I need to know the parameters of these shapes though.

I mean, can you write your own script to generate bounding cylinders, convex hulls, etc.? Does it have to be from bullet for any particular reason?

I'm trying to have defining the collision shapes require little work from the user of Blender which is why I want to use whatever shapes Blender has already when the user selected the shape type (assuming they're accurate). If, for instance, I added a second menu that generated a myScriptCone for the selected object the script wouldn't be able to determine what that shape's rotation, height and radius should be to fit the object without the user defining it (which will make their workflow more complicated)

Unless I'm missing something, you should be able to get all the information you need from the object's data in python.

I had another look at how Blender's handling the collision shapes. Looks like I was assuming Blender was doing more than it was so it should be possible figure out what the parameters using the little info in Python.

Finding the parameters necessary to generate such a shape should be possible with python.
From the wiki:

The Shape setting determines the collision shape of the object. The
  following shapes are available:
Primitive shapes - these are best in terms of memory/performance but don't necessarily reflect the actual shape of the object. They're
  calculated based on the object's bounding box. The center of gravity
  is always in the middle for now.

Box: The size per axis is calculated from the bounding box
Sphere: The radius is the largest axis of the bounding box
Capsule: This points up the Z-Axis.
Cylinder: This points up the Z-Axis. The height is taken from the z-axis, while the radius is the larger of the x/y-axes.
Cone: This points up the Z-Axis. The height is taken from the z-axis, while the radius is the larger of the x/y-axes.

'Mesh based shapes' - these are calculated based on the geometry
  of the object so they are a better representation of the object. The
  center of gravity for these shapes is the object origin.

Convex Hull: Convex approximation of the object, has good performance and stability.
Mesh: Allows to simulate concave objects, but is rather slow and unstable.

To build these shapes using the UI:
Box:

Select the target object and press CtrlShiftAltC > Origin to goemetry, and then press F6 and select bounds center.
With the target object selected, press ShiftS> Cursor to selected to move the cursor to the objects origin.
Add a cube to be the bounding box. It will automatically be centered at the 3D cursor, which is snapped to the target object's origin point.
Copy the Dimension and Rotation values from the target object to the bounding cube. These values are located on the Properties region (N in the 3D view):

You can quickly copy and paste values by hovering over the number field and pressing CtrlC/CtrlV accordingly.
Since this process of copying and pasting the values of each channel can be a bit tedious, you can use a quick bit of python to do this for you:
import bpy

active = bpy.context.active_object
selected = bpy.context.selected_objects

for obj in selected:
    obj.dimensions = active.dimensions

This copies the dimensions from the active object to the selected objects.
Parent the bounding box to the target object so the relative location, rotation, and scale is kept the same. You can also set the bounding cube's Draw type to Wire in Properties > Object > Display > Maximum Draw Type.

Sphere

Do steps 1 to 3  from the Box instructions, adding a sphere instead of a cube.
Copy only the largest dimension value from the target into all three dimensions of the sphere.
Do step 3 of the instructions for Box (Parent the bounding mesh and set the draw type to wire)

Cylinder

Do steps 1 to 3  from the Box instructions, adding a cylinder instead of a cube.
Copy the largest dimension value of the target excluding the Z axis, so the value of either X or Y into both the X and Y dimensions of the Cylinder.
Copy the Z dimension value of the target to the Cylinder.
Do step 3 of the instructions for Box (Parent the bounding mesh and set the draw type to wire).

Cone

Do the same as for Sphere.

Convex Hull
This is more complex. you could try to generate your own using python, or you could try one of these existing options:

The Convex Hull operator built into blender.

Duplicate target object (ShiftD)
With the duplicate selected, enter edit mode (Tab) and select all (A)
Run the convex hull operator (Space> Search > Convex Hull)

This Convex Hull generator written in python.

Existing addons
I also found a couple existing scripts/addons from a quick google search:

One for exporting to YAML
Niftools Wiki - Blender 2.49 nif import/export - Collisions
Niftools - Blender 2.6x nif export collision code

The second link is to an old version of the Niftools Blender nif plugin, the wiki needs an overhaul.
Here is current code for 2.69 in-dev version - https://github.com/niftools/blender_nif_plugin/blob/develop/io_scene_nif/collisionsys/collision_export.py#L332


text:
Vertex groups can not be named in blender 2.70
For some reason the name text field doesn't appear for vertex groups in blender 2.70. I tried in 2.69 and it's there and works fine. Was this feature removed in 2.70 or am I missing something?

Ctrl LMB  click, or double LMB  click on the name of the vertex group. That is now how to rename anything in that type of list.
youtube video

Double click also works.

Triple click works, double click don't work.

@Gonzou what system and mouse are you using, because double click does work for me.

@David, you're right. I checked the tooltip and it says: 'double click to rename'. But in my case it's not working. I use Windows 7 and the standard mouse. Any ideas what is wrong?

@Gonzou I do not know what is wrong. You could ask a new question.


text:
How do I get Particle Boids to fight each other?
In the Boid Brain there is a option called 'Fight' so how do I set up a scene where two groups of Boids fight each other? Or am I misunderstanding something here?
If you have a link for a tutorial that would be good.

Yes, you can make groups of boid particles fight.
For a basic setup:

Add two emitters with separate particle systems.

Set each particle system as the enemy of the other, and with fighting as a priority:

Result:

Also see the wiki for more info.

You need to define at least 2 particle systems with a relation enemy to each other, you can define attributes like strength (this will statistically decide who wins [particle disappears when defeated]).
You could add Follow Leader to the boids brain and animate the leader, this would make the particles follow the leader (creates nice formations). There're so many options you need to play around and develop an idea of how it should like.

In the physics settings make sure you checked Allow Flight or restrict them to land.

I stopped playing with this because I wasn't able to create explosions when a particle dies.
Example:

I hope it doesn't look like I'm stealing your answer.. I had already started writing it when you posted yours. On the up side, this will help with our answer ratio :D

@gandalf3 not at all, I'm rather concerned that this will be closed.


text:
How to render multiple images without freezing the UI?
I'm am currently writing a script that changes a node property (cycles value node) for fast switching between different materiallayers. I also want to be able to render multiple materiallayers into a folder automatically. The problem is that while I render the multiple images, either the UI freezes (it's rendering fine but while it does, blender doesn't respond) or when I use
py.ops.render.render('INVOKE_DEFAULT', write_still=True)

only the last image I called gets rendered (in the UI without freezing).
Here is an image thats shows what the script does

and the full code of the renderscript
import bpy
from bpy.props import *
#ml_filepath = 'C:/Users/render/Pictures/test'

def renderLayer(context, layer):    #renders
    scn = bpy.context.scene
    ml_filepath = '//{}/'.format(scn['ml_renderfolder_name'])   #generate filepath
    name = bpy.context.scene['mln{}'.format(layer)] #get name for the image
    bpy.data.node_groups["MLN Layercontroll"].nodes["layer"].outputs[0].default_value = layer #set materiallayer
    bpy.context.scene.render.filepath = ml_filepath + scn['ml_renderfolder_name'] + '_ml{}_{}'.format(layer, name) #generate filename
    bpy.ops.render.render(write_still=True)  #renders layer - ui freeze while rendering
    #bpy.ops.render.render('INVOKE_DEFAULT', write_still=True) #only the last layer gets rendered :(

def initSceneProperties(scn):       #initiert renderliste
    scn['ml_renderlist'] = "1,2,3,4,5"
    scn['ml_renderfolder_name'] = "mlRender"

    bpy.types.Scene.ml_renderlist = StringProperty(name = "")
    bpy.types.Scene.ml_renderfolder_name = StringProperty(name = "")

initSceneProperties(bpy.context.scene)

class MlRenderPanel(bpy.types.Panel):           #Panel
    bl_label = "ML Render"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "render"

    def draw(self, context):
        layout = self.layout
        scn = bpy.context.scene
        layout.label(text="choose materiallayers to render:")
        layout.prop(scn, 'ml_renderlist')
        layout.label(text="choose foldername:")
        layout.prop(scn, 'ml_renderfolder_name')
        layout.operator("render.mlrender")
        layout.label(text="UI will freeze while rendering")

class MlRenderOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "render.mlrender"
    bl_label = "render materiallayers"

    def execute(self, context):
        scn = bpy.context.scene
        list = scn['ml_renderlist'].split(",")  #splits renderlist string into list
        listInts = map(int, list)

        for number in listInts:            #calls renderlayer() for every number in the renderlist
            renderLayer(context, number)

        return {'FINISHED'}

bpy.utils.register_module(__name__)

also here is the code for switching between materiallayers in viewport and renaming them. Probably not necessary for this but I better just post it.
import bpy
from bpy.props import *
layerRange = 5   #Range of layers

# set value in nodegroup "MLN LAYERCONTROLL" to layer property-------------
def execute(self, context):
    scn = context.scene
    val = scn['materiallayer']
    layerName = scn['layerName']
    bpy.data.node_groups["MLN Layercontroll"].nodes["layer"].outputs[0].default_value = val
    print("set materiallayer to",val)

    currentname = scn['mln{}'.format(val)]          #rename textfield when switching between layers
    scn.layerName = currentname

    for i in range(0, layerRange):                  #rename nodeinputs
        print("named nodegroup input",i)
        newname = scn['mln{}'.format(i+1)]
        bpy.data.node_groups["MLN x5"].inputs[i].name = newname

#raname node inputs + properties
def renameNodeInputs(self, context):
    scn = context.scene
    textfieldName = scn['layerName']
    val = scn['materiallayer']
    scn['mln{}'.format(val)] = textfieldName        #rename layername property

    for i in range(0, layerRange):                  #alle inputs benennen
        print("named nodegroup input",i)
        newname = scn['mln{}'.format(i+1)]
        bpy.data.node_groups["MLN x5"].inputs[i].name = newname

#initialize scene properties
def initSceneProperties(scn):
    scn['materiallayer'] = 1
    bpy.types.Scene.materiallayer = IntProperty(                  #current Materiallayer (number)
        name = "materiallayer", update = execute,
        description = "choose materiallayer",
        min = 1, max = layerRange,)

    bpy.types.Scene.layerName = StringProperty(name = "Name",
    update = renameNodeInputs)                                   #layername

    for i in range(0, layerRange):
            scn['mln{}'.format(i+1)] = "materiallayer {}".format(i+1)   #create layernamen
            print("created mln property")
#

    layername = bpy.context.scene.layerName
    test =  scn['materiallayer']
    scn["layerName"] = layername

initSceneProperties(bpy.context.scene)

#Panel in UI region
class ML_Panel(bpy.types.Panel):
    bl_label = "Materiallayer"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    def draw(self, context):
        layout = self.layout
        scn = context.scene
        layout.prop(scn, 'materiallayer', icon='BLENDER')
        layout.prop(scn, 'layerName')

#Registration
bpy.utils.register_module(__name__)

sorry when my code is a total mess - I just started learning python and bpy.
tldr: How can I render multiple images from a for loop without freezing the UI while rendering?

Are you rendering animations or stills? If stills you could make an operator to animate your value node and render your "material layers" as animation. If it's an animation you will probably have to run blender render in separate thread.

Yeah i thought about that for stills - but i want to render animations with it too. I will try this separate thread thing but i guess it still won't show the UI for seing the rendering progress.

Then this is related: http://blender.stackexchange.com/questions/1050/blender-ui-multithreading-progressbar. You could have a custom progress bar somewhere and update it from handler or modal operator based on the progress of rendering in the other thread.

I suggest scripting this through rendring an animation where there is proper support for scripting multiple renders together. Using the frame change handler you can set up the materials between renders and you retain responsive UI with native progress bars. OFC this would mean you can't really render actual keyframed animations with the script.

does the INVOKE_DEFAULT cause the last layer to get rendered even if you eliminate the loop over layers and only call it once for the first layer? Is it possible that because INVOKE_DEFAULT makes the render call non-blocking, you're telling blender to start the next render before the previous one is finished, so every one of them tried to start, but only the last one finished?

If you want to render multiple images in a row (without rendering an animation), you need to run a separate thread that renders the scene.
Here an example to have a stoppable thread (it's a bit more complicated but quite useful).
import bpy
import threading
class StoppableThread(threading.Thread):
    """Thread class with a stop() method. The thread itself has to check
    regularly for the stopped() condition."""
    def __init__(self):
        super(StoppableThread, self).__init__()
        self._stop = threading.Event()
    def stop(self):
        self._stop.set()
    def stopped(self):
        return self._stop.isSet()

class RenderStop(bpy.types.Operator):
    """Stop the rendering"""
    bl_idname = "render.stop"
    bl_label = "Stop the rendering"

    def execute(self, context):
        threads = threading.enumerate()
        for th in threads:
            if th.name == 'render':
                th.stop()

        def draw(self, context):
            self.layout.label("Render will be stop after the current frame finishes")
        context.window_manager.popup_menu(draw, title="Stop Render", icon='ERROR')
        return {'FINISHED'}

def render():
    start = bpy.context.scene.frame_start
    end = bpy.context.scene.frame_end
    for i in range(start, end + 1):
        bpy.context.scene.frame_set(i)
        stop = False
        threads = threading.enumerate()
        for th in threads:
            if th.name == 'render_th':
                if th.stopped():
                    break
            bpy.ops.render.render(write_still=True)

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

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

if __name__ == "__main__":
    register()
    print("Test Run")
    ### Then you can lunch the rendering by setting up a new thread
    ### t.run define the function that the thread call
    t = StoppableThread()
    t.run = render
    t.setDaemon(True)
    t.setName("render")
    t.start()

By the way, if you want you can render an animation, and use a handlers to change the material at each frame and use an other handler to remove the 1rst one when the render is completed or cancel
import bpy;
bpy.app.handlers.frame_change_post.append(changemat)
def change_mat(context):
   ####do your stuff

bpy.app.handlers.render_complete.append(remove_frame_change_post_handlers)
bpy.app.handlers.render_cancel.append(remove_frame_change_post_handlers)

def remove_frame_change_post_handlers(context):
    if remove_frame_change_post_handlers in bpy.app.handlers.frame_change_post:
        bpy.app.handlers.frame_change_post.remove(remove_frame_change_post_handlers);

### Then you just need to lunch the render in animation
bpy.ops.render.render('INVOKE_DEFAULT',animation=True);

Could you please edit your initial script to make it a running version, to make it easier to test your solution.  Eg import bpy , import threading instead of import thread , I assume start and end are scene.frame_range.x and y.... etc.  Also recommend using scene.frame_set(frame) rather than setting scene.frame_current.

Edited to make runable in text editor.  It renders without a filename? eg "Saved: '/tmp/.png' Time: 00:00.26 (Saving: 00:00.13)"  and henceforth overwrites each time?

are you using gpu rendering? if yes, then use cpu for rendering...the UI should still function properly...otoh if you are using all the system resources(likely with multiple rendering) then you need to cut down the number of renders running.


text:
How can I add a detailed material/texture to a curve?
I know how to add a material/color to a curve, but I want to add it like a detailed texture, like the sphere on the right of the image, as you can see if I render the image (left image) the curve is still just red, it doesn't have the level of detail of the real material/texture.
Is there any good way to do it? I was thinking on converting the curve into a mesh and then just add more polygons...it could work, but if in the future I need to change the curve shape, that won't help at all.

Is this just a normal map? If so, it should be using the generated coordinates. Double check your node setup, you may need to add a Texture Coordinate input node.

Where do i have to put the Texture Coordinate input node? and also, if i want to add a texture, and one that i want to show on the curve, which kind of configuration it will need to have?

And yes, it's a bump-normal map for now, but after that i was thinking in add an image too..

It is supposed to utilize the generated UV coordinates by default . . .

Ah! Looking closer, the bumps are there, but very stretched out. You need to add a mapping node going into the Vector of your image texture. You will then be able to easily adjust the scale. Notice that you might need to add a texture coordinate input as well, going into the back of the mapping node.

The bumps are showing up on the curve, however they are very stretched out. You need to add a Mapping node to adjust the scale of the texture with. Press Shift+A and select Vector > Mapping:

Now press Shift+A again and select Input > Texture Coordinate:

Now take these nodes and set them up as shown:

By changing the Scale values you can now change the size of the texture you are using.
Notice that it will repeat/tile, so it is best to have a seamless/tileable texture.


text:
How to delete or hide reflections, bounces and refractions from a geometry on render?
I'm making a Prism. It's not based totally on reality, so it can count as a basic representation of it.
As you can see on the image, there are reflections made by the objects, but how can I erase exactly those reflections? I already unchecked the box on the objects that are from 'Transmission' and 'Shadow'...but still I see them on there.
Is there any solution to this?

If i add more Roughness to the Glass BSDF, the reflections dissapear, but the transparency isnt the same.

reflections are glossy rays

How can i hide them? or is it impossible?

uncheck glossy from ray visibility, so this object wont apaer in reflection

That doesnt work, already tried :(
If i add more Roughness to the Glass BSDF, the reflections dissapear, but the transparency isnt the same.

Hmm, wait, there was an additional object hidden, i deleted it and it worked, how silly of me..
But yet, the answer you gave me helped, so if you want please post it as an answer because it worked :) Thanks!

I know this solved already, but in addition to ray visibility, you could have also used seperate render layers and composited the two back together.

To prevent an object from appearing as a reflection on other objects, uncheck  Glossy  under Ray Visibility in the Object tab:


text:
Blender assign armature to mesh: “bone heat weighting failed to find solution for one or more bones”
I get this error working with Blender while I try to assigning armature's bones to an human mesh.

Please don't answer the question in the question itself, use the Answer Question button to answer your own question in an Answer. Thanks.

I can't, for reputations limit!

@velthune You have the privilege to answer questions.

The OP originally posted this in their question.

If it happened to you too and you were looking for any solution, I solved in this way:

select mesh in edit-mode;
in the bar "Mesh tools" select the voice "Remove Doubles" (that remove duplicate vertex).

Here there's a video that explain the procedure.
Another way to solve the problem would be add a modifier to the mesh:

"Decimate" modifier.


text:
How do you stretch and then release a soft body or cloth so it springs back like elastic?
I have a soft body mesh and an armature.

I have one bone holding one end of the Soft body and another bone used to stretch the soft body.
I then want one of the bones to let go of the soft body so it springs back like a piece of elastic that has snapped.

You can animate the bone so it returns to the first position but this stops the mesh moving correctly.
Any ideas how this can be done?
It doesn't have to be an armature it could be empties, etc.

Could you please add your .blend file?

Demo of what this does here:

I just had a quick play with this idea and got something pretty close.

Create soft body.
Create armature with two separate bones.
Parent soft body to armature.
Stretch the soft body by moving one of the bones.
This is where it gets a bit limited, but apply the armature modifier as a shape key (I know, you're stuck with the amount of stretch at that point, but trust me, it has some effect and might help).
Keyframe the value of the shape key so that it stetches out slowly over maybe 50 frames, then key it down at 0 about 5 frames later.
Play the animation, and notice how the oscillation of the soft body seems to have been amplified by the quickly retracting shape key.

I really didn't think this would work at all, so having it do at least something made me quite pleased.
See what you can do with that.
I tried keying the deform influence of the bone on and off but that didn't have any effect as far as I could tell.
Nb. I used Automatic Weights. If you don't then there should be a weight painting step between 3 and 4.

Thanks for the Answers.
I have used a combination of the two to produce the results I was after:
Instead of using an armature I produced the initial stretch using a shape key. I then key framed the value of the shape key over time from 0 - 1 - 0.
I then set the cache start frame of the soft body sim to the frame when the shape key was changing from 1 - 0.

It seems that you already managed to stretch and contract the soft body by using the bones.
If you want to stop the motion suddenly you could set two keyframes on Goal Strength / Minimum first keyframe (Right mouse button / insert keyframe) with value 0 and second keyframe this value to .999

See also:

How do I prevent soft body balloons from crumpling when they hit walls?
How can I animate object properties in Blender?


text:
What is better for rendering in cycles? A network? Or a single monster workstation?
Is it better to have multiple render nodes and do rendering over the network?
If so - is there a special software to set this up and is it hard to configure this? Is there a max amount of render nodes?
Or would it be better to have one "monster" workstation with multiple GPUs (5-6 GPUs)?
As far as i know Maya only supports 4 render-nodes... so my question is if there is such a limit in Blender? And the other question if it is difficult to set up a render-farm or render-nodes: I have never tried it so my question is if i will run in a lot of problems if i will try it (i want to use a GPU-based renderer like Cycles). I hope i have explained my thoughts now enough. Thanks for kindness with a noob :-)

As far as i know Maya only supports 4 render-nodes... so my question is if there is such a limit in Blender? And the other question if it is difficult to set up a render-farm or render-nodes: I have never tried it so my question is if i will run in a lot of problems if i will try it (i want to use a GPU-based renderer like Cycles). I hope i have explained my thoughts now enough. Thanks for kindness with a noob :-)

Could you please clarify? This is very unclear, I have no idea what exactly you are asking

@NoviceInDisguise As far as I can see, they're asking about whether it is more efficient to set up network rendering or have a single super powerful workstation.

yes, this is exactly what i want to know :-)

I've never used an extensive and proper network system (or a monster workstation).. I would imagine the network causes some overhead, but would be more easily scaled up at a later time. These are just wild speculations though.

That will depend on the task and the level of effort you want to put into it.
If you are rendering an animation then you will easily benefit from using multiple machines, each machine can render a single frame at the same time giving a very linear speedup based on number of machines. There is a network render addon included with blender. You may want to look at Flamenco which is the new render farm being developed for the gooseberry project. You could also manually start each machine with a different range of frames. There are also a few render farms available that you can pay by the hour or some similar metric.
If you are rendering a single image then a single machine is the easy way to go. There is no freely available way to break up a single image to render it on multiple machines, it can be done but currently you will need to break up the image and combine it yourself or create an automated way to do it.
There are no restrictions to number of machines you can use on any of the render farm options.

I have had good luck with the Brenda project as a starting point to render inexpensively on AWS - https://github.com/jamesyonan/brenda
This allows rendering in many different ways.  E.g. multiple frames per node, splitting up frames across nodes, and much more.
You can also use AWS spot pricing so it can be extremely inexpensive.  Works great for me when I'm in a hurry to get something done.


text:
How to merge vertices in Blender?
I am attempting to create my first 3D character just for practice. Being one of my first 3d models I going through the learning curve needless to say. In doing so I find myself creating many extra vertices. Where we will say 10 vertices on a rounded shape are spaced out on the equator and on the other north pole end of the edges they are very close. The close end could all be one vertex. Is it possible to say merge all points to one point and delete the rest?

You can automatically merge vertices that are very close to each other (within a given distance).
Mode: Edit Mode
Menu: Mesh ‣ AutoMerge Editing

This literally just saved me an hour's work and 400 strands of hair.

No problem, I learned it by reading the blender reference manual https://docs.blender.org/manual/en/dev/index.html Blender has so much power its hard to wrap my head around it.

2.8 : there is a "Auto merge" checkbox under the "Options" tab of the "Active Tool" panel.

There's also a "Merge by Distance" command if you only want to do this once.

Wow, they did a really good job at hiding everything in Blender 2.8 :)

For Blender 2.83 its just M  instead of Alt + M


text:
How can I change smoke colour?
I am trying to make a smoke simulation which includes colored smoke. I have tried changing the smoke color in the domain of the simulation, but the color in rendered view mode doesn't change from the default.
How can I change it?
Blend file: https://www.dropbox.com/s/1j4otu6dl6b7hnl/geyzer.blend?dl=0

change the colour in the colour bar...

related: http://blender.stackexchange.com/questions/19474/how-can-you-color-smoke-based-on-the-smokes-temperature

Cycles or Blender Internal render engines? This is important, as the approach is extremely different between the two!

I use Cycles engine

Select the smoke flow object and in the physics tab, click the option that says "Smoke Colour" a colour wheel will appear. Using the colour wheel and the lighten darken option to its right, pick your desired colour. Things I did:

added a white plane behind the simulation; it's easier to see.
moved the camera to a better angle
changed the smoke colour in the smoke flow object, not the domain.

yes i tried that and it didn't work...

Do tell why, I'm curious now, may you post a .blend file?

yea no problem, here:  https://www.dropbox.com/s/1j4otu6dl6b7hnl/geyzer.blend?dl=0

I don't see the problem.

I'm having the same problem on Blender 2.83.0. I changed the "Smoke Color" attribute of the "Flow" object, and it's not actually changing. I changed the renderer to "Workbench" and that is the only way I could get my smoke color to be honored.

Even if this is an old question by now, it could help others.
Anyway, I'm using Blender 2.80 right now and had this same exact issue, I tried the currently existing answers in this thread, however, none of them worked. Then, when watching this slightly outdated smoke tutorial, I saw that they had selected the smoke domain and then proceeded to edit its node setup. I figured I would do the same even though it seems the node setup for smoke has changed from 2.79 to 2.80.
There were two nodes here, one Material Output node and one Principled Volume node.

I noticed that the Principled Volume node had a color setting, which was set to a light grey color. Mind you I had set the smoke color to be red in the flow object of the simulation.
This color setting seemed promising so I clicked it, changed the color from the light grey into a red-like color. I then checked the viewport. It had changed, the color of the smoke had actually changed. I had figured it out. I was ecstatic, and suddenly I thought of this thread and thought I would share my findings to help others who might run into this issue.
I do hope this help anyone who might be struggling with the same issue.

Blender 2.9:
In the Outliner (scene hierarchy):

Select your smoke Emitter object
Click the little triangle to expand
Do the same with the Modifiers section that appears beneath it
Within Modifiers, select Fluid
Smoke Colour is automatically selected... if not, click Physics tab in the Inspector
click on the colour bar to alter it.

If the Smoke Colour section is not available, try clicking the Shading tab at the top of the screen and repeating the process.

To change the smoke colour simply select the smoke domain box in object mode and select the base object, for example a cube, then move over to the physics tab, the flow option under the smoke heading should be automatically selected from there all you do is navigate to the smoke colour option and there you can change the colour.


text:
turn on Cycles GPU render on non CUDA computers
Is there a way to turn on GPU rendering without an installed CUDA driver and without a CUDA enabled graphic card?
I want to send the blend file on my render farm, all the slaves have NVidia CUDA cards, but I don't want to turn on my big computer just to set the blend file to GPU compute and then send it into my farm.
I'm modelling on my Surface Pro 3 [windows 8, i5-processor] on the go [works fine by the way :3], and when I am home I dispatch the jobs to the far, but this way they only work with the GPU when I turn on my greater Computer to change it there.
There doesn't have to be a way, but it would be nice if there were.

This could probably help.

One way you could do it is to run this in a command line (or put it in a batch file). It enables Blender OpenCL test.
set CYCLES_OPENCL_TEST=all
"C:\Program Files\Blender Foundation\Blender\blender.exe"

Then, in Blender's settings, head over to the "System" tab, and enable OpenCL.

Reference: http://www.blenderartists.org/forum/showthread.php?302079-Blender-Cycles-AMD-Opencl-It-s-possible-working-now

Not sure but i think the experimental feature render option also enables OpenCL GPU rendering.


text:
Use Blender script in other applications
I have written a simple script that allows me to import a DEM with .asc format into Blender. Now I want to study the waterflows of that portion of terrain. How can I do it? Can I write a different application (like in C#/Java) and use  the script from that application to show me a picture of the 3d model?
Or can it be done inside Blender?

please can you add more details?? like a example with images?

It isn't really very clear what you're trying to achieve here.


text:
How to reduce edges and make a face out of it?

Have lots of edges in my starship mesh, as shown in the red box.
How could I reduce them and make one rounded face out of it?

You might be better off deleting the messed up section and re-extruding. Use Alt+M to merge selected vertices.

You could try to unsubdivide with Ctrl+E

You have a ton of 0-area faces along the edge where you added more geometry.  I agree with Novice, you are probably better off re-extruding.

You might be looking for the Dissolve Edges operator, on the x menu.

One more thing to try (if deletion isn't the best) is to select such area and use W > Smooth tool (also in the T panel). Faces with 0 area will reveal themselves because of smoothing, and others with bad topology will become better (quite a bit sometimes)

Just as Tainin said it is not possible to make a curved/bent/folded surface without joining two or more vertices with an edge. However you can make a low Poly model and use smooth shading (in tools menu) to give a more curved shade effect. Or perhaps the normal maps might help depending upon the purpose of your 'Ship'.

i don't think it is possible to have a curved face without the extra edges. more vertices and edges add more resolution/detail to the model. you could try selecting the faces, pressing x and selecting dissolve faces.


text:
How to get the effects to follow the object's animation?
I'm using MakeHuman, bvh files and the smoke simulator. Just adding fire to the subject, fine tuning the fire, but when I run the animation, the fire does not stay attached to the subject when the bvh file kicks in.
How do I get the Domain to follow along with the moving subject in order to keep it burning like a person on fire moving around?

sounds like you need to do some motion tracking then apply an object solver constraint to the fire domain.

I made a similar animation of a missile firing, and was struck with the same problem of moving the domain along with the particle effects emitter. I simply gave the domain the same path to follow as the missile. Remember that the larger your domain is, the larger the effects will be. If you keep the domain moving with the human by animating it to move with the human, you should have it fixed.