text:
Approach to making a 2D graphic 3D?
I've been given a logo graphic that is solid black, in 2D.  The best way to describe is to visualize a musical treble clef drawn with a wide-tip pen slanted. There are two important characteristics that I'm trying to figure out how to model using Blender (2.69): 1) The wide-tip pen (calligraphy style) causes the width of the stroke to change continuously, and 2) the stroke crosses over itself twice.  The 3D request is to have the stroke be "raised" in the middle.
I have the outline of the logo traced perfectly with a bezier curve, but I can't figure out how to give it a smooth contour that changes height to match the width of the stroke.
Conceptually I'd like to extrude a bezier circle along the outline, scaling each extrusion to match the width of the stroke.  When done I'd bring a plane in and have it bisect the model between a lower or back half and the upper or front half.
But every way I've tried to extrude a bezier curve results in the curve just moving along with my cursor.  I was hoping to use bezier curves to keep the quality of the curve high until I was done shaping the entire model, then convert the curve to mesh and clean up where the stroke overlaps.
Perhaps a workable approach is to create a circle mesh, extrude it, rotate as needed, and scale it, then repeat all along the outline. However, I absolutely have to avoid faceted curves as the "skin" flows around the stroke.
I am hoping someone more experienced with Blender would have a helpful suggestion or two.

I'm not entirely sure what you want, but you might want to look at using Bevel and taper objects. If that doesn't help, you could use a mesh and use smooth shading and subsurf to make things smoother. Could you upload some screenshots to further explain your problem and the desired result?

you can just extrude the overlapping part and few adjoining faces to give it a raised look. Use Proportional editing tool to move the selected faces, as it gives smooth taper to new extruded faces.

Thank you, both, for your suggestions.  The proportional editing one gave me absolute fits until I found out how to decrease the size of the influence.  But ultimately I just increased the geometry and tweaked individual vertices until I was happy enough to move on.

A picture paints a thounsand words. It would be really nice that you can upload a sample image to show what exactly you want to make.

Try this: Extrude your outline to create a "flat topped" shape.
Switch to a side view and create a curve that describes the peak at the "stroke cross" the way you're visualizing.
Extrude your profile view curve along the horizontal axis to create a shape that intersects and contains your logo.
Boolean intersect.

Thank you for that suggestion.  I think it would work for most normal work, but because mine has the shape wrapping around and through itself at constantly changing width and height, I couldn't figure out a profile that would work.  I ended up increasing mesh geometry and pulling vertices to sort of smooth things out (looks like a jagged jigsaw puzzle now!) and worked on lighting and material to hide it mostly.


text:
How can you rotate a procedural material?
I'm modeling our church sanctuary to assist in a lighting design and I am reusing a procedural wood material from the wood pews to kind of simulate the laminated beams that hold up the roof, but those beams are vertical, not horizontal like the pews.
I've tried just adjusting rotation in the vector transforms, and I've tried switching the scaling to favor the z-axis rather than the x-axis.  Neither attempt has worked.
(This procedural wood is courtesy of an old thread on blenderartists.org)

The horizontally striped beam is the test beam (on the right, in the light)

Try setting the mapping node to Texture at the top. It might be more intuitive.

Thanks.  I'm not sure how that makes things more intuitive.  If you could explain that would help me with my understanding of the mapping node (I have been RTFMing :)  I reset the scale and rotation values to 1 and 0, respectively, and started from scratch.  It's not realistic yet, since the wood grain doesn't bend with the wood, but I've got some ideas to play with.

Following @gandalf3's suggestion above, I switched to having my values affect the texture, restarted all values from scale of 1 and rotation of 0, and then started playing with them until I got something that's sort of acceptable.  It really helped to partition my screen so the node editor was large but above it was the 3D View wherein I had isolated my beam (Numpad /) and had the 3D View set for "Rendered view" That allowed me to see the effect of my changes quite quickly.

source: Stack Exchange

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

sort: votes


text:
Where's the sculpt radius?
When I go into sculp mode the radius that defines your brush isn't appearing. I don't know if it's because I turned it off but it makes it hard to sculp without it.
Edit: Never mind it just got working again, I went into edit mode and back into sculp mode and I think that fixed it.

Which version of Blender are you running?
There is a known bug in 2.8 Beta (12/12/2018)
https://developer.blender.org/T59274
Missing the circle brush in sculpt mode using Blender 2.8
Does it reappear if you go into Object Mode and then back into Sculpt Mode?

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


text:
How can I remotely access Blender 2.8?
I am trying to remotely access Blender in a host server.
Both client PC and host server have Nvidia GPUs installed that are compatible with Blender. Blender works properly in both PCs if they were accessed physically not remotely. When I am trying to access Blender remotely in the host server, however, Blender does not start running and I get the error message below.
"Blender - Unsupported Graphics Card or Driver: A graphics card and driver with support for OpenGL 3.3 or higher is required. Installing the latest driver for your graphics card may resolve the issue. The program will now close."
I checked the GPU driver versions of both the client PC and the host server. They are all updated to the latest versions.
Any suggestions on how to solve this problem? Appreciated.
Client workstation: Intel(R) Xeon(R) W-2125 CPU @ 4.00 GHz with one NIVIDIA GeForce RTX 2080 Ti. Windows 10 Enterprise.
Host Server: Intel(R) Xeon(R) Silver 4216 CPU @ 2.10 GHz with NIVIDIA TITAN RTXs. Windows Server 2019.
I am accessing the server using the default "Remote desktop connection" Windows application.

Can you provide the hardware information from both the host and client workstations?

Could you edit the question and provide detail information about your problem? How are you accessing the server remotely? What operating systems are you using? That's kind of essential part of the question that should not be skipped. People will only be able to help you if you describe your problem in full.

@nathan Thank you for pointing out! Kindly check the updated question body. Any suggestions? Thank you

@martynas Thank you for pointing out! Kindly check the updated question body. Any suggestions? Thank you

Maybe Windows remote desktop connection application does not use the GPU to display the screen somehow. You could try some other application for remote connection. I use Google's Chrome Remote Desktop(that is free) and it seems to work fine.

Thank you! It's working.

RDP, the protocol windows uses for remote desktop does not support OpenCL or CUDA natively. https://stackoverflow.com/questions/51705471/current-state-and-solutions-for-opengl-over-windows-remote

using mesa3d from https://github.com/pal1000/mesa-dist-win
and you can remotely access Blender 2.8

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


text:
Material preview doesn't show color changes, the object stays black
I've just started a Blender course, but I got an issue. When I go to the Material Preview and want to change the color, nothing happens, it stays black.
http://kepkezelo.com/images/lupyilfvfg4qb6hwq4vt.png

This is probably because of your AMD driver, switch to the previous or try Properties panel > Render > Performance > High Quality Normals

Does this answer your question? AMD GPU Material in "material preview mode" and "rendered mode", is entirely gray as background. Only outline is displayed   Other recently asked questions displaying same issue https://blender.stackexchange.com/questions/linked/204297?sort=active


text:
Surface not casting any reflections Cycles
When I go into render preview, the materials from the car are not reflecting anything and are only very dark, although they should.
When going into the material preview everything seems to be okay.
I will add some pictures, so that you can see what I mean.

Please [edit] your question and add an image of the materials you are using. Use the tools from this site
to upload images so that they are displayed as part of your question.
See How to upload an image to a post?

What's the environment that's being reflected? If the shading options (on the far right of the shading buttons) show 'Scene World', the chances are that your scene environment is not the same as your preview environment.


text:
What is the official name for this icon/button?
What is the official name for this button/icon:

It's found in many places throughout Blender:

I can't find it anywhere in the manual.
If you know, can you please cite the source for your information (i.e. a page from the Blender Manual) because I'd like to read about it.
Thanks!

Andrew Price called it "Dot Symbol" button:
http://youtu.be/xYiiD-p2q80?t=8m58s
I would call the particular ones you show "Node Material Properties Dropdown Buttons" to be honest. I'm not sure why a differnet icon is used here, using a symbol not "universaly understood" like Andrew said.

I understood the icon to mean "click this to connect a new node here" (specifically a node), as the dot reminds me of node sockets.

Not sure if it documented anywhere in the manual but it looks like it is using icon ID of LAYER_USED. That is the same icon shown in the 3dview header to show that something is on that layer.
A popup menu normally has two arrows but the cycles materials where this is shown are used for node links and line 1380 of interface_widgets.c supports that theory. What the if statement surrounding that line says is if it is drawing a menu and it is flagged as a node link it draws the layer used icon which elsewhere would also prevent the two little arrows being drawn, that matches with the cycles material display.
Other places LAYER_USED can be found is in the addons - Layer Manager, Node Wrangler and PowerLib.
It would appear that the use you have shown is unique to the cycles material display as part of a popup menu and is hard coded that way. From an addon usage we don't get direct access to show it as part of a popup menu, I haven't tried but you may be able to flag the menu as a node link to make it work.

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


text:
How to access Render Result pixels from python script?
Render Result exists in bpy.data.images["Render Result"] but it contains no data.
Also bpy.data.images["Render Result"].size[0] is 0, even if the render shows as an image in the UV/Image Editor with a width of 1366.
Maybe the render result cannot be accessed as an image or I missing some update or refresh call somewhere but I can't find such a thing in the 2.68 API documentation.
Any tip in the correct direction appreciated.

What you could do is save the image to a RAM disk. That is a virtual disk on your computer that has a certain amount of memory allocated on the RAM of the computer. This way it still keeps everything in memory really. IO operations on RAM are way way faster than disk operations. This might keep things simple, with respect to scripting. I use ImDisk Toolkit.

unfortunately accessing render results cannot be done via bpy.data.images['Render Result'].
There is a workaround by using Viewer node. basically you will need to attach a Viewer node to your render layer and then access pixels of the Viewer.
see this link: https://ammous88.wordpress.com/2015/01/16/blender-access-render-results-pixels-directly-from-python-2/

Give me some time to try it and see if it works better than my proposed solution.

The viewer node trick worked and saves me from having to create a temp file on disk. In my case, I have customized nodes and cannot lose them so I'm not doing the node clear step. I created the Viewer Node in the editor not in code, but the important thing here is that sending the output to the Viewer Node works.

indeed it does the job

the only drawback is that pixels will always contain rgba even if you set your output to be rgb

Answering myself, if somebody find a better solution please answer and I will change my accepted answer.
The only reliable way to access the render result pixels is this:

Save the actual value of bpy.data.scenes["Scene"].render.filepath to a local variable
Set bpy.data.scenes["Scene"].render.filepath to something to avoid overwriting any previous render, for example "//temp." + str(time.time()) + ".png". 1 and 2 can be ignored if you don't care of any previous render.
Call bpy.ops.render.render(write_still=True). write_still set to true will cause the file to be immediately written to disk.
Create a new image and load that file from disk, or use an existing image reserved for this purpose in your blend file and set its filepath and then reload.
Do what you need to do with the loaded image pixels.
Remove the loaded image, except you have a good reason to keep it in the blend file.
Restore the original value of bpy.data.scenes["Scene"].render.filepath

Brief: the only reliable way to access pixel data of a render is to render it, save to disk immediately, recover from disk, read pixel data.
At the time of writing this, Blender version is 2.68.

Last time I experimented with this, it was necessary to save the content of Render Result as an image to disk and then load it as a new image. Then the pixel array is accessible. Maybe this API feature can be improved, or i'm doing it wrong :)
import bpy

render_result = next(image for image in bpy.data.images if image.type == "RENDER_RESULT")
if render_result is None:
    print("Render result not found!")
else:
    render_result.save_render("somefile.tga")
    r2 = bpy.data.images.load("somefile.tga")
    r2.pixels[0] = 0.2345

Thank you. Indeed, pixel data is accessible if the image has a file path and is saved first. But the render I want to read from is generated by the script (by calling bpy.ops.render()). If I render with F12, assign a file path to the render result and save, the next time I call bpy.ops.render() Blender generated a new image called "Render Result.001", It does not use the "Render Result" image any more.

yeah, i'm going to avoid suggesting that you keep track of All images with string "Render Result" and sort them and access the last index -1, perhaps someone else can offer enlightenment.

it can be solved by using
render_result = next(image for image in bpy.data.images if image.type == "RENDER_RESULT")

A solution without heavy workarounds for 2.8+ in case someone is searching for this now
import bgl
import bpy
import gpu
import numpy as np

# Find render result
render_result = next(image for image in bpy.data.images if image.type == "RENDER_RESULT")

# Create a GPU texture that shares GPU memory with Blender
gpu_tex = gpu.texture.from_image(render_result)

# Read image from GPU
gpu_tex.read()

# OR read image into a NumPy array (might be more convenient for later operations)
fbo = gpu.types.GPUFrameBuffer(color_slots=(gpu_tex,))

buffer_np = np.empty(gpu_tex.width * gpu_tex.height * 4, dtype=np.float32)
buffer = bgl.Buffer(bgl.GL_FLOAT, buffer_np.shape, buffer_np)
with fbo.bind():
    bgl.glReadBuffer(bgl.GL_BACK)
    bgl.glReadPixels(0, 0, gpu_tex.width, gpu_tex.height, bgl.GL_RGBA, bgl.GL_FLOAT, buffer)

# Now the NumPy array has the pixel data, you can reshape it and/or export it as bytes if you wish
print(buffer_np)

prints [1. 0. 1. 1.] (2x2 array) in my case :(

sorry it is like this, I have to update it to 3.6 I guess, will do asap :(

Yet another workaround is to bake to an Image type texture, as long as you are not after the rendered result from the camera but the rendered surface of an object.
Then you can access the image pixels from Python like any other.

If memory serves me, what I was trying to do is using a 3D model to render different camera angles to a sprite sheet, because I don't know a way to copy a portion of an image from one image to another using only the Blender Python API and standard python APIs without adding something else to the mix, I needed to read pixels from the render result to copy a part of the render to the sprite sheet png (pixel by pixel, performance was not important). Yes, I needed the camera transformations. But thank you for the info.

This might help..
RENDERING :
bpy.data.scenes['Scene'].render.filepath='file1' # directory and name
bpy.data.scenes['Scene'].render.resolution_x=width
bpy.data.scenes['Scene'].render.resolution_y=height
bpy.data.scenes['Scene'].render.pixel_aspect_x=1.0
bpy.data.scenes['Scene'].render.pixel_aspect_y=1.0

IMAGES :
image=bpy.data.images['image02'] # image02 as seen in uv editor
imageR=bpy.data.images['Render Result'] # useless, so bad
width=image.size[0]
height=image.size[1]

PIXELS=[0.0 for i in range(len(image.pixels))]
# len(image.pixels) == width * height * 3 ( or 4 with the alpha channel )

# here, work with PIXELS
image.pixels=PIXELS


text:
Silhouette Mountain Shader
How to create seamless/repetitive silhouette mountains to plane object in a procedural way?
Example mountain silhouettes shapes:

Make a Noise texture repeat on the X axis by tiling its X coordinate.
Separate your texture coordinate components with a Separate XYZ node, then drive the X component through a Converter > Math > Wrap node. Feed this as input for the vector socket s Noise texture.
Connect the output of noise to a Color Mix node, combining the other socket with the untoched Y coordinates from the Separate XYZ node.
Run the output through a Color Ramp set to Constant.
You can control the frequency of the tiling from the Max value of the Wrap node, the frequency of the mountain roughness from the Noise texture Scale parameter, and the range of heights from the Mix factor of the Color Mix node.

Mix more Noise nodes or even use different textures to get different skyline contours with varied serrated patterns.

Exactly what I'm looking for. Thank you for this clever answer.

Very nice solution!

For the Wrap I would instead feed the X into a sine cosine pair and recombine as a 2D input for the noise such that the nasty cutoff is at 0 and 1 gets smoothed out.

Indeed, good point. I though of that too late after posting, but haven't found the time to update

you can also sampe 2d texture in a circle then its seamless. and you dont have to deal with the blending.

Also why does the noise need to repeat?

To make it tileable as per OPs requirements

Can you not use the "Cicada Principle" and combine a few periodic noises with different periods? See in CSS e.g. https://css-tricks.com/cicada-principle-css/ or https://www.sitepoint.com/the-cicada-principle-and-why-it-matters-to-web-designers/ --- if the noises have period 2, 3, and 5 then combining them gives a repeat only after 2x3x5=30 periods. If you have 2, 3, 5 and 7 it's 210periods (for only 17 periods of "content")?

That is a very interesting principle. Sounds doable, you could probably achieve that with math nodes and some elbow grease


text:
How to merge external images together in script?
I'm trying to merge set of images together with script in Blender 2.8. At the moment there is no library like PIL available in Blender, but there is imbuf which one I can use to read the images from disk to list. There is not much documentation about this imbuf... Anyway I want to do this merge process with blender own libraries, so users not need to get PIL or similar library...
How I can merge multiple image files from disk together with Python in Blender? Is there pythonic way to do this without libraries, or can I do it with imbuf, or using imbuf and numpy, or how to do this in blender script?
I'm lost how can I make this, so If someone knows how to do this in Blender 2.8, please show me.
import imbuf

def merge_image_parts(image_paths):

    images = []

    # Load images to list with imbuf
    for img in image_paths:
        img_path = os.path.realpath(bpy.path.abspath(img))
        images.append(imbuf.load(filepath))

    # MERGE TO NEW IMAGE BUT HOW?

Can't you subdivide a plane into 4 faces and give each face an individual material?

@Nate_Sycro27 yes, but trying to do this in script. My plan is render multiple images and then combine them together with script. All under the hood in script. This is new plugin where trying to create this process automatically that user do not need to take those images to other program to merge rendered images in there e.g. Gimp or PS.

It certainly seems like pasting has been implemented in imbuf but I can't tell if it has been committed: https://developer.blender.org/D6226

@batFINGER Would be interested to hear your input/answer to this if you get a chance.

Finally, I managed to combine image parts together with looping nested arrays. Although the script itself is not the most beautiful... I mark this answer to correct now, but if somebody is doing better that works in this context, I'll change it.
So here is "monster" that I've used in this case:
# First I need to order rendered part names correctly
rendered_images_ordered = []
for y in range(parts_count, 0, -1):
    for x in range(parts_count):
        rendered_images_ordered.append(rendered_images[(y-1)+(x*parts_count)])

# Then I grab pixel data from all parts
part_pixels = []
for image in rendered_images_ordered:
    filepath = os.path.join(scene.render_settings.render_folder, image)
    filepath = os.path.realpath(bpy.path.abspath(filepath))
    loaded_pixels = list(bpy.data.images.load(filepath, check_existing=False).pixels)
    part_pixels.append([loaded_pixels[ipx:ipx+4] for ipx in range(0, len(loaded_pixels), 4)])

# And finally loop all pixels together to final image
final_image_pixels = []
for i in range(parts_count, 0, -1):
    for row in range(part_height):
        part_switch = -1
        px_counter = -1
        for col in range(final_image_width):
            if col % part_width == 0:
                part_switch += 1
                px_counter = 0
            if i-1 == 0:
                px_arr = i-1 + part_switch
            else:
                px_arr = ((i-1) * parts_count) + part_switch
            target_pixel = row * part_width + px_counter
            final_image_pixels.append(part_pixels[px_arr][target_pixel])
            px_counter += 1

# And then save output image
output_image = bpy.data.images.new(final_image_name, alpha=True, width=final_image_width, height=final_image_height)
output_image.alpha_mode = 'STRAIGHT'
output_image.pixels = final_image_pixels
output_image.filepath_raw = final_image_filepath
output_image.file_format = scene.render.image_settings.file_format
output_image.save()

Result:

If you want to investigate more about where I use this loop check here. This is part of RenderFart blender addon. I hope my answer or addon is helpful for someone...

OK. This answer doesn't necessarily use python, but it achieves the same result.
Say we have 4 pictures, and want to combine it into one image in Blender. There are many ways to do it. I'll give a few examples:
1) Individual faces for individual materials
You can assign the images to individual faces in Blender. I'll use the example you provided.
I have here 4 faces with individual materials:

Now how to make multiple materials like this combine into 1 face?
Add a new face, and go to edit mode. CTRL+R twice to loop cut once along the X and Y axes of the plane. Should look like this:

Now make sure "select faces" is selected in edit mode. Select one face, and go to the materials tab. Add a new material slot, and find one of the other color materials (or image), and select "assign". Do the same for the different faces, and the other materials. Make sure you add a new material slot for the object only for each face.
Here is the result:

Now, of course, to merge the materials into one image:
I do this lazy Blenderer's way.
CTRL+S will bring you a snap menu. Select "cursor to selected". Make sure you have the new plane selected.
Now add a camera, and delete the old one. Set this new camera's resolution to 1200x1200, or some value that is identical to the other value.
Move the camera up on the Z axis until through it you see just about the entire plane. Now render.
Here's the final combined image:

Of course you can edit the image in the compositor to achieve a nice image texture.
If you want to mess around with it, here is the .blend:

Thanks for answer. But I try to avoid all manual work in this script and do everything with python. But that is great answer if wanted to create it using blender UI.

Finally after investigations I got something to work. Here is example blender file where is script that exports merged image. It works properly when using images that are rendered with "full final size" where is transparent section included and other with "cropped borders". Look below for a better understanding.

And here is script that is also included in example Blender (zip) file.
# Example script to show how to merge external images in Blender
# using numpy. In this example we use 4 images (2x2) that should
# be merged to one actual final image.
# Regular (not cropped render borders) seems to work fine but
# how to merge cropped images properly???
#
# Usage: Just run script and it will export image named "MERGED_IMAGE"
# to root of this project folder and you'll see what's the problem.

import bpy, os
import numpy as np

ctx = bpy.context
scn = ctx.scene

print('START')

# Get all image files
def get_files_in_folder(path):
    path = bpy.path.abspath(path)
    render_files = []
    for root, dirs, files in os.walk(path):
        for file in files:
            if (file.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif'))):
                render_files.append(file)
    return render_files

def merge_images(image_files, image_cropped = True):

    image_pixels = []
    final_image_pixels = 0

    print(image_files)

    for file in image_files:
        if image_cropped is True:
            filepath = bpy.path.abspath('//Cropped\\' + file)
        else:
            filepath = bpy.path.abspath('//Regular\\' + file)
        loaded_pixels = bpy.data.images.load(filepath, check_existing=True).pixels
        image_pixels.append(loaded_pixels)

    np_array = np.array(image_pixels)

    # Merge images
    if image_cropped:
        final_image_pixels = np_array
        # HOW MERGE PROPERLY WHEN USING CROPPED IMAGES???
    else:
        for arr in np_array:
            # This works only with 4 parts properly.
            final_image_pixels += arr

    # Save output image
    output_image = bpy.data.images.new('MERGED_IMAGE', alpha=True, width=256, height=256)
    output_image.file_format = 'PNG'
    output_image.alpha_mode = 'STRAIGHT'
    output_image.pixels = final_image_pixels.ravel()
    output_image.filepath_raw = bpy.path.abspath("//MERGED_IMAGE.png")
    output_image.save()

images_cropped = get_files_in_folder("//Cropped")
images_regular = get_files_in_folder('//Regular')

# Change between these to get different example
merge_images(images_cropped)
#merge_images(images_regular, False)

print('END')

Here is project folder in zip file that contains working test script example, where you can test how this works. https://drive.google.com/file/d/1R4G_fubEzFWbHZMLtAAES-QsRhKyLKWb/view?usp=sharing
Update about findings (13.2.2020)
I'm trying to sort all pixels one by one with loops and see how that will work. So I don't care performance at this point, just want to get output right. This whole merge feature is part of add-on that I'm working now called RenderFarts https://github.com/Creatide/RenderFarts :) So here you can see the function where I'm going to use this.


text:
Is there a way to assign vertex groups to all loose elements via python
I have loose mesh elements within an object and I would like each loos element to be placed in its own vertex group.

Another take on this. Already had code that separated a mesh into vertex groups from seams,
import bpy

def island_verts(mesh):
    import bmesh
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='DESELECT')

    bm = bmesh.from_edit_mesh(mesh)
    bm.verts.ensure_lookup_table()
    verts = [v.index for v in bm.verts]

    vgs = []
    while len(verts):
        bm.verts[verts[0]].select = True
        #bpy.ops.mesh.select_linked(delimit={'SEAM'})
        bpy.ops.mesh.select_linked()
        sv = [v.index for v in bm.verts if v.select]
        vgs.append(sv)
        for v in sv:
            bm.verts[v].select = False
            verts.remove(v)
    bm.free() # prob not nec.
    bpy.ops.object.mode_set(mode='OBJECT')
    return vgs

# test run
obj = bpy.context.object
mesh = obj.data
vgs = island_verts(mesh)

for vg in vgs:
    group = obj.vertex_groups.new()
    group.name = "Island"
    group.add(vg, 1.0, 'ADD')

Thanks for the code. For some reason, though it adds a vertex group for each vertex

Test the code against the cube (1 vgroup) or suzanne (3 vgroups, the eyes are separate).  Could be something to do with your mesh.  Try using p in edit mode, separate by loose parts, my guess is you will end up with as many objects as vertex groups it added  from running the script.  Probably why it's crashing TLousky's code as well, too many bmesh instances.

As for some reason, when testing it now, it works. Thank you :)

I also get separate vert groups for each vertex, with both samples of code. Not sure if there is something that has changed with the API or with BMesh to cause it though.

Ah, found my problem and the solution is simple: the script actually looks for the object in edit mode to be in vertex select - if it is in edge or face select, that will not work, and you will get a vertgroup for every vertex then. Thank you for the examples, I want to set this as a tool now :D

Here's a script that iterates over each mesh island and assigns its vertices into a new vertex group.
EDIT - WARNING: After testing it appears that this solution is limited to around 1000 islands (due to Blender's max recursion limit). Use @batFINGER's solution if you have more vertex groups than that.

It's based on a recursive function since the blender API currently doesn't provide (as far as I know) any built in way to get all mesh islands.
import bpy, bmesh

def find_island_and_assign_vgroup( o, remaining ):
    ''' Recursive function that itertaes over mesh islands and assigns a new vertex group to each'''

    if len( remaining ) > 0:
        # Create bmesh object (must do this every time since vertex groups are created in object mode, which destroys the bm object
        bpy.ops.object.mode_set( mode = 'EDIT' )
        bm = bmesh.from_edit_mesh( o.data )
        bm.verts.ensure_lookup_table()

        bpy.ops.mesh.select_all( action = 'DESELECT' )
        bm.verts[ list(remaining)[0] ].select = True
        bm.select_flush( True )
        bpy.ops.mesh.select_linked()

        selected_verts = [ v.index for v in bm.verts if v.select ]

        # Add to a new vertex group
        bpy.ops.object.mode_set( mode = 'OBJECT' )
        vg = o.vertex_groups.new()
        vg.add( selected_verts, 1.0, 'ADD' )

        # Remove this island's verts from the vert list
        now_remaining = remaining - set( selected_verts )

        bm.free()
        find_island_and_assign_vgroup( o, now_remaining )

o         = bpy.data.objects[ bpy.context.object.name ]
all_verts = set( range( len( o.data.vertices ) ) )
find_island_and_assign_vgroup( o, all_verts )

Thanks for the script. Unfortunately it crashes Blender for some reason.

Weird, worked for me. Can you upload a blendfile? http://blend-exchange.giantcowfilms.com/

A bm.free() before the recursive call is probably a good idea, as that's what prob crashes your code on high loose part counts, given the OP's comment on the answers we've provided.

Makes sense, @batFINGER, will add and test it.

It doesn't crash now, but actually that's not enough either, as blender sets a maximum recursion depth to ~1000 (stopped in vertex group 992 in the Suzanne X3 test you suggested). So appears like your solution is more robust.

Thanks, yes it doesn't crash now. @batFINGER's solution appears to calculate a bit faster. Happy there are more than one approaches :)


text:
Is there a way of snapping to edge or face in one direction?
I would like an edge with two vertices to snap to a face which isn't connected. if I move one of the vertices locked to one direction towards the face with face snaps on, i get a snap all along the face, which results in a non-precise snap. I am looking for a way to snap to the face at something like an apparent intersection. Is this possible?

Related? http://blender.stackexchange.com/questions/39784/snapping-two-objects-by-edge-in-object-mode

Do you mean you'd like to make that edge snap with both its vertices to the unconnected face?


text:
Is there a way to make edges of a mesh invisible
In 3ds max, it's possible to make edges of a mesh invisible, so when exporting DXF into another program (e.g. Revit), The mesh surface shows up without the edges.
Note that this is different than hiding the edges using "H", since the faces in 3ds Max Still Show up. Here is how it works in 3ds Max:

You can use a Wireframe Modifier or Wireframe command from Ctrl+F menu to create a cage of edges.

Blender might have different tools and methods, what is your end-goal? Export an .dxf where some edges are visible and the rest is solid shaded?

@MrZak. I actually want the exact opposite - invisible edges, and visible faces

@Jerryno. My end goal is a mesh in Revit that does not display all the edges, just the boudnaries and the faces. In revit, there is unfortunately no way to define what's visible and what isn't. With the aformentioned workflow in 3ds Max though, it possible to export a mesh where all edges do not show up.

Hopefully the blender exporter support this, I checked and it has some features but I can't test it, don't have Revit. You can try different options in the exporter what to export: https://i.sstatic.net/f19mH.png there is also documentation here for the exporter: http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Import-Export/DXF_Exporter. If the exporter doesn't support what you want then there is no way other than scripting your own.

Unfortunately none of the settings combinations for dxf export execute edges that are rendered invisible.


text:
Outliner filter or sort by object type?
Is there anyway to filter by object types not separated by layers? For example, i have an imported scene with many cameras, and I would like to see all cameras in now list.

if you select one camera, and go to the outliner you can select same types. It gives a list of camera's

Thanks gladys. That makes sense, although not as intuitive as I would like

In 3d View select 1 object of your desired type (Camera, Light, Mesh etc.)
Go to the Outliner and select Same Types from the dropdown menu

This will display all objects in your scene based on the current selection. E.g. When a camera is selected, the outliner will display all available cameras in your scene:

I think it would be helpful to explain how they can select the same types from the outliner.


text:
Is there a way to assign shift key to a mouse button?
I have a Spacemouse and in Blender for Mac, the Spacemouse settings do not work, so if I need to assign specific buttons, I need to do it via Blender. I would like to use one of the keys as a shift key.

Sounds like you have the basic 3D mouse - rotation/tilt with a button on each side. Blender maps NDOF buttons to operators, as in an NDOF button works more like an E key not a shift key. I expect you want to use something like DoubleCommand or Karabiner


text:
How to Use Rotation of an IK-Controlled Bone as a Variable?
I have set up an arm for a character with two bones and an IK handle, and I want the rotation of the forearm bone to control the value of a shape key I set up. the shape key is there to correct some deformities that occur, when bending the arm.
My issue is that, because the forearm bone's rotation is controlled by an IK handle, its rotation in the transform channel does not change.
Is there a way to use the rotation of the forearm bone to control the value of the shape key?

You can use the "Rotational Difference" function for Driver's variable, evaluating the angle between two bones of the IK chain.
If the rest pose has an angle, that will create a rest pose value, which will have to be subtracted from results in the driver's expression.

In your example image, you have a rectangular arm, that is actually what I have as well. Do you know how to make it so the arm stays the same thickness, making it look more natural?

There are 3 main tecniques: 1) ensuring that every half of the limb is totally weighted to one bone only, so to avoid any deformation in theese trait, leaving all stretching in a little area. 2) Adding extra loops and geometry to better absorb the deformation. 3) Using the "Mantain volume" option in the Armature modifier. Beside theese, we go for corrective shape keys and corrective bones.

I have made each half of the arm totally waited to one bone. I don't think option 3 will work (I've tried). do you know of a driver setup that would keep the thickness of the arm the same?

Maybe ask a new question showing the actual deform and the desired end shape.

That is a good suggestion, I will do that


text:
The nodes search doesn't work for me
I've seen in tutorials that they add nodes via search. When searching for nodes by first letters (via search or  Ctrl  +  F ) it shows that there are no results, although I know that these nodes exist.

You search for "Gam" (Gamma?) but there is no such node, at least not visible on the screenshot. If you want to add a new node, it's SHIFT+A, not CTRL+F.

I've seen in tutorials that they add nodes via search.

 Ctrl  +  F  is hotkey for finding existing nodes in your node tree.  Shift  +  A  is for adding nodes. If you start typing after hitting  Shift  +  A , you will enter the search for adding nodes.

authors: Александра Ремболович


text:
Achieving a clean terrain texturing
I've come across a nice project on the web (https://coastalworld.com), and found its texturing to be quite great. I wanted to know how is it possible to properly create a terrain and apply textures the following way:

What I found also interesting is that this doesn't stretch on hills, for example.
What would the workflow be to achieve this?
Maybe they created the terrain and applied a picture on it?
Here is the project: coastalworld.com
What I have tried is to paint the terrain with several textures using nodes. But I assume they did not make use of such technique, since things look pretty "clean" between sand, road, and grass.

Any reason to keep this project you found online a secret and not share a link to it? "Maybe they created the terrain and applied a picture on it?" - yes, I think that's the gist of it. What have you tried and what are you struggling with?

it's probably a texture applied to a plane, nothing special or hard to do

@MartynasŽiemys my apologies, I didn't know that was necessary, but here is the project: coastalworld.com What I have tried is to paint the terrain with several textures using nodes. But I assume they did not make use of such technique, since things look pretty "clean" between sand, road, and grass.

as I said it is a texture applied to a plane... they didn't paint it with textures nor with nodes, they just opened photoshop or anything else, set brush to sharp and draw the whole texture which then they put on the 3d model... (or painted it directly in 3d software, you can paint your models in Blender as well, just go to texture paint and set your brush to be sharp

The context helps a lot. So this is a WebGL game and it runs in a browser. That explains quite a lot. Of course this kind of information is essential if you want to get meaningful answers.

As it's a WebGL game they probably wanted to save space, so usage of image textures is limited(so it downloads faster). And you can indeed see that web browser does not download any image textures while loading the game if you check with any developer tools like the ones you get in Chrome browser after hitting  F12 .
There are 2 likely scenarios: the textures could be made procedurally or there could be no textures at all and everything you see could be geometry. I think geometry is more likely in this case, but this is obviously still just a guess.
Blender has excellent tools for both scenarios. You could use material nodes to texture your objects in the scene procedurally, and you could use Geometry Nodes to randomly distribute various instances of geometry to make the various spots you can see in the game. Actually, you don't necessarily need Geometry Nodes. You can also do it by hand and/or use other tools like array modifier and Randomise Transform functionality, and obviously there is nothing stopping you from mixing all techniques.
Material nodes could look something like this, but you would add more different layers of dots:

These procedural nodes are native to Blender and will not work with other rendering engines(a game running in a browser is a good example of where it would not work). Procedural textures would probably need to be coded in the rendering engine or some complex export add-ons would be needed. Maybe some game engines(like Unity) have needed functionality for this. I have limited knowledge in this area so I cannot advise further, but I know that rendering geometry is way more universal. If you wanted to explore Geometry Nodes workflows, they are a bit more complex and depend on your specific situation even more, and unfortunately it's unlikely I would be able to provide meaningful examples and help in a single answer. I would advice watching a few tutorials and attempting to achieve what you are after and if you struggle with something specific you could always ask more specific questions about that here on BSE.

This is quite a detailed answer, and does provide me a sense of direction I should follow. I appreciate it. Thank you very much!


text:
Problem with UV unwrapping. Strange lines occurred
Recently I decided to create a t-shirt, and on a moment of unwrapping I started to see strange lines on design which is meant to be on a back of a t-shirt.
Screenshots are attached.
Btw I don`t really know what information to provide as Im somewhat new to Blender, so if you need to know something, go ahead.

In general it's best not to crop screenshots when you are asking questions and show all the UI including various settings and status bar showing the version of Blender you are using. It doesn't matter much in this case, but since you mentioned you are new to this, it might help with other questions.

Those are pixels at the edges of the image extended.
Change extension mode from Extend to Clip in the image texture node:

Thank you! That helped me a lot!

Consider upvoting and accepting as the answer if it was helpful, or downvoting if it isn't helpful at all.

I appreciate your help, but I couldn`t cast an upvote as Im new to this website either and my reputation is lower than 15, but when I will be able to, I will certainly do so!


text:
Making addon scrip
Try to make a simple addon for the blender. It should add a 3d person-like movement for the object.
The addon has appeared in tabs, but when I press the button nothing happens
here is my scene
and pyton script:
bl_info = {
"name": "Simple Third Person Shooter Addon",
"blender": (3, 0, 0),  # Adjust according to your Blender version
"category": "Object",
"version": (1, 0, 1),
"author": "Your Name",
"description": "Addon to simulate a third-person shooter with basic movement, jumping, and crouching mechanics.",
}

import bpy
from mathutils import Vector

class SimpleTPSOperator(bpy.types.Operator):
    """Operator to run TPS Simulation"""
    bl_idname = "wm.run_tps_simulation"
    bl_label = "Run TPS Simulation"

    _timer = None
    move_speed = 0.1
    rotation_speed = 0.05
    jump_strength = 0.2
    crouch_height = 0.5
    normal_height = 2.0
    is_crouching = False
    on_ground = True  # Simple check for whether the character is on the ground

    def modal(self, context, event):
        character_obj = bpy.data.objects.get('Character')
        camera_obj = bpy.data.objects.get('Camera')

        if not character_obj or not camera_obj:
            self.report({'ERROR'}, "Required objects (Character, Camera) not found.")
            return {'CANCELLED'}

        # Handle movement
        if event.type == 'W' and event.value == 'PRESS':
            character_obj.location.y += self.move_speed
        elif event.type == 'S' and event.value == 'PRESS':
            character_obj.location.y -= self.move_speed
        elif event.type == 'A' and event.value == 'PRESS':
            character_obj.rotation_euler.z += self.rotation_speed
        elif event.type == 'D' and event.value == 'PRESS':
            character_obj.rotation_euler.z -= self.rotation_speed

        # Handle jumping
        if event.type == 'SPACE' and event.value == 'PRESS' and self.on_ground:
            character_obj.location.z += self.jump_strength
            self.on_ground = False

        # Simulate gravity for jumping
        if character_obj.location.z > self.normal_height:
            character_obj.location.z -= 0.01
        else:
            self.on_ground = True

        # Handle crouching
        if event.type == 'LEFT_CTRL' and event.value == 'PRESS':
            character_obj.scale.z = self.crouch_height
            self.is_crouching = True
        elif event.type == 'LEFT_CTRL' and event.value == 'RELEASE':
            character_obj.scale.z = self.normal_height
            self.is_crouching = False

        if event.type == 'ESC':
            self.cancel(context)
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def execute(self, context):
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        if self._timer:
            wm.event_timer_remove(self._timer)
        self.report({'INFO'}, "TPS simulation stopped.")
        return {'CANCELLED'}

class TPS_PT_MainPanel(bpy.types.Panel):
    bl_label = "Third Person Shooter Panel"
    bl_idname = "OBJECT_PT_tps_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'TPS'

    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.operator("wm.run_tps_simulation")

def register():
    bpy.utils.register_class(SimpleTPSOperator)
    bpy.utils.register_class(TPS_PT_MainPanel)

def unregister():
    bpy.utils.unregister_class(SimpleTPSOperator)
    bpy.utils.unregister_class(TPS_PT_MainPanel)

if __name__ == "__main__":
    register()

Hello and welcome. Here's a simple addon on how to print "Hello World" on button click. https://blender.stackexchange.com/questions/229533/i-need-help-making-my-first-hello-world-addon-adding-a-button-with-a-function

It works(from object mode obviously - it's edit mode in the sceenshot), but it conflicts with default hotkeys. Maybe should not use return {'PASS_THROUGH'}

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

I would recommend using a game engine for this application. It's probably possible to do in Blender but why make things difficult for yourself? Godot is pretty approachable, Unreal is a bit less beginner friendly but you can do anything in there. Unless I don't understand your goals.


text:
How to slide one object on another, keeping curvature?
I want to make a character that has no actual face but just a pair of goggles that will slide around on his front to show in what direction he is looking. He is round like a cylinder but its not perfectly round. How can I make the goggles stick to him, but keep the curvature?

you could create a plane, give your glasses a Surface Deform modifier with this plane as target, and give this plane a Shrinkwrap modifier with the face as target, then parent the plane to a bone to make it move.

thanks so much for the answer, i'm gonna try that, but i won't be able to reply for a while, so i can't tell you if it worked or not. thanks anyway tho :)

If I were you I would probably create a curve that matches the curve of the character, then use a curve modifier on the glasses.

If you don't want the goggles to distort, then you could parent the goggles to the path then you can move along the path by changing the frame (left/right arrows on your keyboard). That doesn't work if you are also animating the character though.

thanks so much for the answer, i'm gonna try that as well as the answer that "moonboots" gave me, but i won't be able to reply for a while, so i can't tell you if it worked or not. thanks anyway tho :)


text:
Shrinkwrap displacement issues
I have this high poly model, and I did retopo for it.

Now I want to create a discplacement map for it, or at least to try and get some more details into the model. I added a subdivision modifier, and then a shrinkwrap modifier, and that cuased some issues in the mesh. When I added a displace modifier between the subdivision and the shrinkwrap modifier, it help but it doesn't eliminate the problem.
What can I do to fix it?

if you already have your lowpoly, why don't you simply give it a Subsurf and bake the highpoly? Why the Shrinkwrap and the Displace modifiers?

I don't know how to do what you just said.
I'm trying to create a displacement map, or use some other method to bake the extra information.

once you have the low-poly version, give it a Subdivision Surface and bake the normals, you'll find a lot of tutorials on this topic, just make sure you're in Cycles, not Eevee.

Well it seems I have a problem with baking the normal map too. I keep getting this "rainbow" effect in the normal, full of green and red and blue and pink. Changing the ray distance make no difference.

maybe share your file so that we give a try: https://blend-exchange.giantcowfilms.com/

Give your lowpoly a Subdivision Surface modifier. As your highpoly goes a bit beyond the surface of your lowpoly, you need to increase the bake Ray Distance value up to 2m, it seems to work fine:

Do I need to apply the modifier before baking?
Also should I set it to level 1 or level 2?

do not apply the Subdivision Surface modifier of the lowpoly, unless maybe if you need to use it in another software. Give it Subdivisions: 2/2/2

link
link
In the viewport it seems like there are holes in the texture
When I try to render it seems a bit off and without all the details. Not sure if it's the normal map, or if it's just look like it because of the lighting.

If there are some artifacts, maybe paint on this part with the good color, you can do it with Blender or with an image editor, just peak a color from the normal palet and paint on the artifact part. You could also try with a cage to see if you have better result but it seems like the result you currently have is pretty good

Thank you so much for your help.
By painting, you mean like taking the normal map to photoshop and try to match the color better?
I tried to use the cage option but it didn't seem to make any difference. Not sure if I did it right.
Anyway, I tried to set the ray distance to 5m, instead of 2m, and it look like that solved the issue. link
Thanks again for the help.

yes exactly, peak a color that is around the artifact and use it to paint and remove the artifact

or you can use a clone brush if it gives a better result, in Blender you can paint with a clone brush in the 3D view


text:
Why did Blender suddenly begin lagging?
Usually when I use Blender, I have no problem playing animations except on the cycles engine. However, all of sudden I can't play my animation or adjust anything on screen without my computer acting as if cycles is on. This happened after I just the tile size in the render options then switched from Cycles to Evee. How do I get this to stop? Here is link showing what I'm dealing with:https://youtu.be/TipDNkmpLGM The only thing I wanted to accomplish was making a ponytail that moves. Here is what my model looked like before all this https://youtu.be/Wbz21wpydrI

Steps of the viewport and render sections of the particle settings were too high.


text:
How to control the folds of a cloth simulation?
I made pants using a cloth simulation. I pinned them to the waist of the model. The problem is that the pants keep folding inside. I want to take the cloth out like the function in Marvelous, but is there such a function in blender? Or what should I do?

my file

please use titles that describe the problem clearly.

sorry. my bad english.


text:
How add hdri image on sphere?
I want to make a mobile game with Unity.
My project would be an space game so for that I need a sphere to make the sky.
Can someone explain what I have to do, to have a sphere with an hdri picture mapped to it?
I watched dozen of tutorial to do that but either it is on the previous version of Blender or not the tutorial don't show what I want.

It's simple. Just use an Image Texture (your HDRI) for the object's material and connect it through an emission Shader so it emits light instead of being prone to shadows:

From inside the sphere, you can see the HDRI as you would as if it was connected through a World Shader:


text:
Why does Blender force-quit?
If I slide the Shape Key value anywhere from 0, Blender will force-quit. What can I do to fix the problem?

not slide the value....? ;)  you can...restart blender, try another blender version, restart your computer...

is your scene a really big scene?  Maybe it's just too much for your computer to handle


text:
How to make braided tubing?
I am looking on how to produce braided tubing in blender. Below is what I'm trying to replicate. Any help would be much appreciated

I would have 3 cylinders, each with a different material.   Braiding would use some Brick-like texture to include it's alpha Principle BDSF node for the "see through" effect; inner some glass-like material node.  I might use a Shrinkwrap modifier on the 2 outer cylinders to "fit" those over the inner cylinder as I bend or otherwise position the inner one.

Let's quickly change the title before anyone sees it :D - tutorial requests are considered off topic on BSE.

https://blender.stackexchange.com/questions/131443/braided-hose-modeling https://blender.stackexchange.com/questions/58959/how-to-model-braided-nylon-sleeve

https://blender.stackexchange.com/questions/200650/braided-cord-with-curve-and-bevel-curve

version – Modifiers
Add a mesh Circle 12 points, Delete > Only Face&Edges.
Modifiers in this order:

Screw (spiral)
Screw (strip wide)
Mirror (strip crossing)
Solidify (thickness)

Two other Cylinders for inner and outer tube with correspond material.

To add a bit of randomness to braid I added Geometry Nodes modifier after the first Screw to random a bit wire crossing ... Random Value for Offset socket of Set Position node.

To make it more realistic you can duplicate wires before Mirror modifier Mirror it and Solidify in negative direction. Or for more precise modelling -Apply the first Screw modifier and manually select every second point and Scale on X,Y a bit  ... so you get up&down crossing.
version – Geometry Nodes

Spiral stroke segment generates already first node, all the others are to set strip, correct Tilt and Extrude, shade Smooth limited by Split Edge node (factor Edge Angle) ...

... segment arrayed and mirrored (by Scale -1).

Edit: Knitching
All the techniques here use braid in one direction above a crossing direction, but in reality it is up&down knitching ... so here is some way ...

Node-tree is longer, so instead of sharing screen check the file ...

Generate stripes using e.g. wave textures (or just math: ping-pong on coordinates). You might need to rotate your UV map inside the shader if it's generated procedurally (I'm using a bevel on a curve here). Then just compose one over the other - I'm not using a Mix node because the color is same for both layers, also I'm not making the stripes intertwined, which would require slightly more logic. Modifying normals for more 3D effect:

The other provided answers are great.

Here's one more way:
1.Add subdivisions so that you have a lot of squares

In face edit mode, select all, right-click and 'poke faces'

Select one vertical edge, Shift+G, length, then Ctrl+X to dissolve the selection

Ctrl+Alt+click an edge to select an edge ring, press F3 and type 'loop' and select 'select loops: edge loops'

Press 'P' to separate. Hide the other object for clarity. Select the new object and right-click and select 'convert to curve' (note, NOT the other curveS option)

Make a plane object, in face edit mode, select all, press X: remove ONLY faces, convert that to curve in object mode

make that as the Bevel Object of the spiral curve object

Make the Twist method tangent:

Check 'Fill Caps'

Add some subdivisions for the 'Plane' Bevel object. Make the spiral object smooth by right-clicking and select 'Shade Smooth'.

Ask in comments if some thing's are hard to do, I can elaborate by editing this answer.

I went by this way too :) Than I changed my mind ... BTW to create such curve you can use addon Extra Curves (packed with blender) > Spirals ... so you can skip first five steps.

@vklidu I'm glad you changed your mind :) Your new answer is very clever! Creating the answer was more effort than I thought, also - could've been a shame to have to duplicate answers

Yeap :) I know that feeling ... it happened to me several times, after a few hours of creating answer to notice its already answered is frustrating ... I already tried to propose some "reservation" system (or some notification someone is working on answer) would be helpful. Luckily this wasn't the case :) Very nice result.

i am personally totally against any reservation, but...an information "somebody is writing an answer" might be helpful if you don't want to waste your time... ;) But i saw indeed somebody writing things like "but i wrote something in the comments and you answered it..." as if they could reserve it...i could only laugh! :D

@Chris IMO submitting a work-in-progress versions of a long answer would be totally okay if in the end it says "Answer writing in progress. Update soon to see the edits." or something. I think I might just do that for the next long answer of mine.


text:
Whenever I try to append an image for reference it gives me a error and says it is not a library

Included a image of the error. If anyone has a solution I'd appreciate it.

Is that path in the error line correct? You seem to have "swordInTheStone_downloadFiles_part2" twice in the path so maybe Blender is getting confused? Also, why are you trying to append an image rather than simply adding it from the Shift-A > Image > Reference menu?

You should hit Shift+a for Add menu while hovering the mouse over the 3d Viewport and choose Image -> Reference. This way an image will be added as Empty type object. It will remain visible while in all shading modes so that's perfect for reference.

You could use a mesh plane with the image as a texture, but that way you have to worry about aspect ratio of the image. There is this add-on "Import Images as Planes", it comes with Blender so you can enable it in the preferences. It helps with importing images as mesh planes. They are only visible in Material Preview or Rendered shading modes, but you can then use the plane's geometry to start modelling or cut the image into parts or insert loopcuts and align them to features of the image to make snap points - that's sometimes very convenient.
Once you enable it in the preferences you get this option in the File -> Import menu:

It shows up  in the add menu as well:

You cannot simply append an image, because images are no object types you can put in the scene by themselves.
Whenever you have an image somewhere in the scene in Blender, it is either used as a texture on an object's shader or used as a reference image placed in an empty or as a background image in the world or the camera.
If you just append it directly it has nowhere to go, it cannot be placed directly in the scene without an object, you didn't open it with the Image Editor or with any other open dialogue in some kind of texture node etc.


text:
How to duplicate objects in animation?
I want to copy some object in animation, like using a particle system.
I mean at frame 10 copy an object, then at frame 20 copy again, and the first object should not disappear.
It is like a particle system, but I would like to control more details.
Like Unity3D's Prefab and Instantiate.duplicate

Can you place a question with a question mark [?] in your writing above? Please show your work as a Blender screen capture to see memory or cpu compute requirements for you duplicated object. How many objects are being duplicated? 8 ? 888 ? Quantity matters. Please clarify you question.

The render visibility of an object or object hierarchy can be animated.  Thus the viewer will perceive the object to appear.  The object can be off camera or in a different layer.
Python is available to you.
One or more Particle systems is available and these particle systems can be coordinated by Python
Particle Instance is available


text:
How to install/use Blender 2.8 on CentOS 7.6?
I use Centos 7.6 and I am having issues to run Blender because there are problems with my libraries in my case "libmvec.so.1" is not found it seems that is due to the gclib version, I was looking for solutions and it seems that to solve it I would have to upgrade it which I also found that is not recommended because it is dangerous for the system.
So my question is, is there a way to use Blender in CentOS without compromising the system?

Nothing really?

I'm in the same situation as you. It is not recommended to compile yourself. I decided to wait until red hat 8 release, the beta is out and now with glibc updated to version 2.28.
Otherwise you may leave Centos temporarily and jump to another distro, like Mint.

Thanks for the feedback, I think to wait is the solution, for now I am using the 79b version, changing os is out of the question since my system is all setup and running good just to think in start up all over again gives me the chills.:D

It seems like their are big problems with old libraries at the moment, though some people have been able to build working versions with a fair bit of a struggle: https://devtalk.blender.org/t/unable-to-run-blender-2-80-in-rhel-centos-7/2138/64

see https://blender.stackexchange.com/questions/120890/blender-2-8-cannot-find-libmvec-so-1?rq=1
also https://unix.stackexchange.com/questions/132158/how-do-i-maintain-a-separate-newer-glibc-gcc-stack-as-non-root-on-linu

@MichelMartinsZigaib, could you maybe edit the question and add some more detail it?  Could you explain how you know about the problems with your libraries? Posting exact error messages and explaining when you get them might be useful. It is also helpful if you describe what you have tried up until now.


text:
Is it possible to add images in the Text Editor?
A little bit of context:
I've beeng working around some "interoperability" between Blender and other software/hardware like: Pure Data, reacTIVision, Arduino, Raspberry Pi, etc.
I toyed with doing some async things, "serving" from a virtualEnv and "clienting" connecting to, from Blender and vice versa.
I don't know if it is correct terminology here - 'embedding'(?) IPython.
(interactive console from visualcode) to [Blender ipython.embed()] like described here: https://docs.blender.org/api/blender_python_api_2_65_9/info_tips_and_tricks.html.
then, recentlly, I watched some cool features on Wolfram Mathematica. Really cool stuff. And, I kind of mixed stuff in my head wondering if something like this could be implemented by some hackery. See: https://www.youtube.com/watch?v=P7kX7BuHSFI. I don't expect something like Wolfram Mathematica. I understand what that would imply. So I just want to open an image in the Text Editor. :)
What Ipython.latex is able to do, I imagined An autocompletion-like feature which throws and [Ipython-line [console]] inside the text editor to open up small image representation of what you are doing in the 3dscreen or whatever your data_base content is.
This would be useful, to keep track of the stuff in projects by having visual representation of objects without having to have them while you write them on your scripts. (objective-symbolic-python) :)
If someone has any idea, I'll apreciate it.
Thank you.

It would really be easier to understand you if you made an effort to make no spelling mistakes. You are talking about complex things, with complex terminology, various names of software packages and technologies - it is hard to follow. It would be a lot easier if you made an effort to write the exact names of the things you are talking about, also capitalize the names to indicate they are names. It's not always clear. I tried to correct the text as well as I am able to, but I am afraid it is still not clear, it needs editing. I would recommend getting a spell check add-on for your browser.

thank you Martin, i feel sorry about :(  english is not my natural lenguaje, i do my best to explain myself, i'll take it on count.
what wasnt clear, exactelly? so i can try to fix it.
I know there's may be little few persons that could answer to this and it might be trivial for those(may be). But dont know if they have time for it, i just want some hints on where to start.. itll be cool
and lastlly, ont forget the title of the question. this is preety much clear. and what im trying to achieve.

'I toyed with doing some async things, "serving" from a virtualEnv and "clienting" connecting to, from Blender and vice versa.' This could be made clearer. The purpose of what you are doing could also be described in more detail. As far as images in the Text Editor go it would probably be possible to do with OpenGL(see: bgl), you can also look into putting images in the UI, you can put stuff in the side panel or maybe make a pop-up. Try looking into bpy layout.template_preview and working with UI in bpy in general.

well, dont know, this is actually what im doing, toying, playing if you prefeer, The main purpose is just satisfy my curiosity about: is it blender-and-python capable of doing such or such thing that i'd like it to be able.
If you want to know more about what is exactelly what im doing or what is it for? I simply dont know. having fun
Thanks for the hints, ill check it up. these are some good ideas.
¿do you know how do get output to terminal when press [ctrl]+[space] in tex editor. [autocompletion], wich is that oop?  where is called from? app.debugg=True but nothing. thanks

Google knows. Check this out.

hm, thats what i was wanting to avoid, to dig up on this again :) but its a good one thank you. Yeah im shure there's the function call im looking for. i was.
then it only least to know if i can break the thext editor. :D.
thank you for the help. ill see what comes up.

well im here now... I thinked on these ideas. bgl and GL to draw on top, also I thinked it as a layout, but here it where i think itll be placed somehow still figuring it out.
https://github.com/JacquesLucke/code_autocomplete/blob/master/graphics/text_box.py

yep a Gl thing from rectangle(). Thank you Martin. i think i got it. nor the [console line] in the text editor with Ipython.
But a colored Gl thing [image] on the text editor.

It is OpenGL, or bgl not Gl - that looks like GI that is for 'Global Illumination' that has nothing to do with this. If you are interested in coding you should get used to following the rules of languages. Seriously, that is hard to follow and understand.

i see, i read about pep compliance yesterday. i should used capitals GL in here. got it (y)

if someone followed this to this point, then here are some useful stuff. notice the here link. :)!


text:
How to override a linked scene in Blender?
I am experienced with Maya but new to Blender, after long digging I still can't find an answer, can you help me out?
My question is: how to override a linked scene in Blender?
Create 2 empty files, link scene one to another.
As you can see, it says Shift + Click will create override, but it does nothing actually...

I found that a few people have asked the same question as me, but have not received answers yet.
https://blenderartists.org/t/override-a-linked-scene/1350794
Thank you very much for your help.

If overriding a scene is not currently feasible method, can you share a way how to link view layer?

where did you see this tooltip? i tried hovering over alot of things in this area as shown in your picture but i can't see this tooltip anywhere. im using blender 3.1. you?

hover to the anchor icon on scene selection, the one beside "X" delete scene icon.

i dont have the anchor icon. only the copy and x icon. is it always displayed or how do i get this icon to show?

when you link a file, select a scene instead of collection, object and etc.

yeah nothing happens when i SHIFT + click. what exactly do you need to link? can you not just link the objects you need? coz there is also a menu under: Object -> Relations -> Make Library Override.

I need the view layers. not creating another fresh scene

Shift+Click still not working in Blender 3.3. You can override a linked scene by using the outliner by the following steps:

Select Outliner Display Mode: Scenes
Right click the linked Scene -> Library Override -> Make -> Selected/Content/Selected & Content depends on your needs

In Blender 4.2 when I do this, it does nothing and in the Info panel I see it logs Could not create library override from data-block 'SCScene.001', as it is not overridable

I'm also seeing this message. Is this resolvable in 4.2?


text:
One face is bigger than the others
Making the donut and one of the faces is bigger than the other. Tried goolging the problem but I don't know all the terms to really search effectively. Is there any way to fix this?

The best is probably to delete the face, dissolve the useless vertices, select 2 opposite edges and CtrlF > Grid Fill:

Omg thank you! took a little bit of tinkering to learn to select the vertices but once I did, I used the grid fill and changed the offset to 4. Thank you!

You can use the Knife Tool to cut new edges between the verts. Just click K, while in Edit mode, and then select one of the Vertices. After that, just select the one on the opposite side. Now, a new cut will be done. You can finish it now by pressing Enter and then repeat it again, but you can also press E to start another cut, while still being in Cutting mode. When you finish with the grid, just press Enter to confirm and you are done.


text:
Aligning objects in camera view
Several things are off and I don't know how to fix them.

How do I get all my objects and grid lines into camera focus? If I have a camera somewhere, I certainly don't know where it is.

How do I place the donut onto the plane. Right now, it passes through the plane like a ghost.

It would appear that you are currently looking through your camera, so I'm not sure what you mean when you say you don't know where the camera is. For positioning the donut, have you tried clicking on the menu with the orange square, and manually setting the z position to zero? (or zero plus an offset based on the height of the donut)

Where's the menu with the orange square?

thats the Object Properties menu in the outliner panel on the right


text:
I pressed something and now many edges do not appear in edit mode
in blender 2.8 I pressed a button unintentionally, and as a consequence the mesh specifically only for this object had this change in which many edges do not appear even when I select the face that is still there for some reason does not appear

Hi there :) . A possible explaination for this is that you might have either triangulated the faces or you might've applied a decimate modifier. (As far as i can tell)

If there are hidden edges in edit mode press Alt+H to un-hide them.


text:
is there a way to speed up the render process?
i have to render a project for university. The computer i'm using has Titan z and a i7 5th gen. The project is a large city (100+ Gb of project) and i have 2400 frames in 720p resolution. Using default 32x32 tiles and cuda for rendering i have 20+ minutes for a single frame. There is a way to speed up the entire process? Thank You all!

Use larger tiles: 256x256. Note that a single computer with a single GPU will take a long time no matter what. Consider using a render farm for a project like this. See if the university can provide you with more computers to use.

If you're able to, start thinking about how you can break your project down into manageable parts.
You say you have a large city. Does every building need to be an actual object? Maybe think about making billboards (a plane with a texture on it), with buildings on them.
Is every building super detailed? Think about making LoD (level of detail) variants that are less detail and less poly count. So the further away something is from the camera, the less detail it has. Which means overall your scene is less heavy. Kind of like how video games work.
Also, try and make sure your buildings aren't super messy in terms of geometry (extraneous loop-cuts, floating verts, etc.). It's a small thing, but multiplied by the amount of an entire city's worth of messy geometry, it can have an effect.
Do you have multiples of the same building? Are they duplicated? If you've got a bunch of objects that are duplicated with shift+d, each of those objects are treated as individuals. If they're all exactly the same, it's a waste of memory and can also cause problems with scenes. Instead, instance those objects with alt+d. Which means each instanced object shares the same data between those objects. Which lowers memory cost.
Do you have heavy effects like volumetrics? Are they necessary? Sure, everyone loves having atmospherics and stuff in their scenes. But if you just need some slight fade in the distance to make your scene have an atmosphere, do you really need to use something like volumetric absorption/scatter? You can get pretty much the same effect with a low-strength emission node in the volume output instead. It's essentially free in terms of render times.
Also, making sure that your tile-size in render settings is correct, is important if you're using GPU. 256x256 is generally the most optimized when it comes to GPU rendering.
Lastly, if it's still not having an effect, look into distributed rendering solutions like SheepIt. It'll render multiple frames on other people's computers, which should give an output in a more reasonable time-frame.


text:
Ubuntu launch blender instances with a different configuration
I am moving from Mac to Linux (Ubuntu) to use Blender (it gives me the feeling that it is more stable and, above all, faster).
The problem I have is the following: On Mac I had a script, to run an instance of each version of Blender, in which I defined the variable ENV: $BLENDER_USER_CONFIG and $BLENDER_USER_SCRIPTS, so that the program started with a different configuration ( startup file and installed addons) depending on the version (if you launched the script for 2.83 it came with certain addons or if you launched the 2.79 or 2.90a with others).
In Ubuntu I have managed to configure a .desktop for each version so that it launches the corresponding instance but... does anyone know how to define the ENV variables for each .desktop so that they have their different path to config and scripts?
I hope I explained myself well...
Thanks!

Hi. Please make the title of your question specific to the problem you are having and not just the general topic. Thanks.

This should work: You can change the Exec line in the .desktop file like this:
Exec=env YOUR_VAR1=value1 YOUR_VAR2=value2 /opt/blender-2.90/blender %f

(Duplicated my answer from blender.community :) )

Hi michaelh!
Did not work at all...
This is my Exec line: Exec=env BLENDER_USER_CONFIG=/Home/daniel/Dropbox/apps/BLENDER/CONF/2.83/config BLENDER_USER_SCRIPTS=/Home/daniel/Dropbox/apps/BLENDER/CONF/2.83/scripts /opt/blender2.83/blender %f


text:
Timeline modal operator: how to get frame cursor to follow mouse
I'm trying to write a modal operator for the timeline, but I'm confused about how to get the current frame cursor in the timeline to follow a 'mousemove' event (and consequently, how to set the new current frame when the operator finishes).

Solved -
in the invoke() function, I set these:
self._initial_mouse = event.mouse_x
self._initial_frame = scene.frame_current

in modal():
self.offset = (self._initial_mouse - event.mouse_x) * -0.1
scene.frame_current = self._initial_frame + self.offset


text:
bpy.utils.previews error
Hoping maybe a Blender dev can help with this. I have addons that load icons using the bpy.utils.previews module, but they give the following error
AttributeError: module 'bpy.utils' has no attribute 'previews'

The previews.py module exists in 2.7x/scripts/modules/bpy/utils. bpy.utils.previews only works for me in 2.78, not in 2.79 or 2.77/earlier.

It seems that the previews module must be explicitly imported to be found:
import bpy.utils.previews
should be placed at the start of the file.


text:
How to avoid noisy renders in Cycles?
I know that this question is a bit old or maybe overdone, but I'm running the latest edition of Blender and when I use the Cycles engine I get really fuzzy results and I can't find a simple, non-compromising solution to the quality.  I don't know exactly what I'm doing wrong here, but I'm sure others share my frustration.
Leaving everything in default settings, I started a new project and switched to the Cycles render.  I duplicated the cube and set colors for two Diffuse BSDF shaders, then went ahead and made walls and a floor all sharing the same diffuse shader.  I made two windows to emit blue light.  The screenshot has gaps between the walls because of the setup:

I'm aware that it's considered very incomplete and many have come to terms with some amount of noise, but is this normal?  Furthermore, with default settings or not, I can't change the amount of noise produced.  Supposedly, using "progressively refine" in the rendering tab should make it refine itself indefinitely, however Cycles only counts to 10 refines and then stops, creating a render which is a pixel-perfect match of the ordinary rendering method when it's completed.
I understand that there are tricks that can be used to reduce noise, but at the cost of extra processing time and usually small quality conflicts, like blurring.  My question essentially boils down to is this Cycles' current limit?

Note: theres a post on BlenderArtists which may be helpful to anyone wanting to avoid noisy renders: http://blenderartists.org/forum/showthread.php?332447-FAST-and-NOISE-FREE-CYCLES-renders-are-here!

Samples:
What you want is the number of Samples.
A Sample refers to cycles firing a "ray" into the scene and returning information based on the color and other properties of objects it interacts with.
E.g. If a ray bounces off a red object and then hits a light source, the corresponding pixel will get a red color.
Also see Why can't cycles cast one ray per image pixel, instead of rendering progressively to infinity?
You can change the number of samples taken per pixel in Render settings > Sampling > Samples > Render:

Increase this value to take more samples and reduce noise. See the manual:

There are two integrator modes that can be used: path tracing and branched path tracing. The path tracing integrator is a pure path tracer; at each hit it will bounce light in one direction and pick one light to receive lighting from. This makes each individual sample faster to compute, but will typically require more samples to clean up the noise.

Progressive refine:
Progressive refine does not change the number of samples, it disables tiled rendering. With tiled rendering each tile is rendered to the full number of samples before starting the next. Disabling this is useful for rendering the entire image all at once, so the user can manually stop the render and get a finished image.
Note that the render will still stop at the number of samples defined in Sampling > Samples > Render using this setting, and rendering the entire image this way is much slower than rendering with tiles.

Thanks for the heads up.  I can't believe I missed that for so long :)  I just hope the question won't be construed as ignorant (I think enough people struggle with the same thing anyway).

You should probably mention that Progressive Refine is incredibly slow and should only be used to find out how many samples you need for future renders.

Ah, but you already mentioned it and putting asides in the question dilutes it (I've done that enough already).

@Stopforgettingmyaccounts... I explained about the Progressive refine setting because you seemed to think it did something else. I thought it best to explain what both the samples and progressive refine settings do so you aren't left wondering what it is and how it's different :)

Worth noting that there are 'number of samples' settings on the actual light objects too, not just in the render settings. I'm doing a very simple but long animation render, and increasing this setting eradicated noise much more efficiently (i.e. less increased render time) than anything in the render settings did.

An addition to gandalf3's answer lies also with optimization of the scene's and objects settings.  Given the example scene with all diffuse and emission BRDFs you could turn off or limit the bounces of some of the rays being cast.  For example, there are no glossy materials then disable the glossy bounces in the Light Paths section of the Render panel.  You could also lower the number of Diffuse bounces at the expense of less light being thrown around.
http://www.brendanorr.com/hotlinks/ss1.png to http://www.brendanorr.com/hotlinks/ss1a.png
I sometimes also change the super-sampling/anti-aliasing method from Gaussian to Box especially if I'm rendering an animation.  Lastly for global render settings if you are using your GPU to render change your tile size.  I believe it depends a little on the scene content but I usually bump mine up to 256x256 with good results.
There are other per-object optimizations too.  Sometimes I will disable certain kinds of rays from the Cycles Settings section in the Object settings panel:
http://www.brendanorr.com/hotlinks/ss2.png
In cycles materials there are optimizations that can be made with Mix shader and Light Path nodes to send rays through a Transparent shader instead of a more costly Glass, Glossy, or other Refraction node if it doesn't need the computations.
All in all the idea is to pare the unnecessary features and samples so that more samples can be thrown at the rays that will contribute more to the scene.

Your images are broken.

Yep, I forgot I hosted those files there and nuked them when I upgraded Drupal.  I can't find any of the original files.  Being 3-going-on-4 years from this post many things have changed and there are better answers above to this.

Everything of the above, but FIRST:
As you stated in your question: you used the default settings:

This will always give you noise, no matter how many samples you render.
If you change the settings (Bounces min/max) to some equal number, render time goes slightly up (sometimes less than 1%!), depending on your scene of course, but you can get a noise free solution after all.
Just test and see for yourself.
Example:

I tried this with 256 samples, comparing 12,3 with 12,12 and there was very little difference in the amount of noise. The only place I saw a difference was where there were several specular objects by each other (maybe because the min bounces was less than the number of glossy bounces ). Render time went from 50.9s to 53.4s

Andrew Price aka. Blenderguru has written a blog post about getting rid of fireflies. There he says:

use bigger light sources.
use bigger shadow sizes
use "multiple importance sampling" if you have HDRs in your scene
use "filter glossy"
check "no caustics"
use "clamping"
more samples

Of course, some of then will change your scene - but if it's under your control, maybe that's still a valid option.

I will suggest this very easy trick. Remember, this trick will only work for blender 2.81 and above. Go to compositing, and enable nodes. Then, click on add and select search and enter denoising. Then, drag the node to the middle of both present nodes. Something like this:

If you are unable to find denoising normal and denoising albedo, you will find it here on the left:

This is a very simple and easy trick that will save you a lot of time. You could also go with blender's built-in denoiser, but that is not as accurate and fast as the compositing trick. You can get the render that looks like it has 10K samples while you can render it at as low as 5 samples and get amazing results and it's built-in!

You can use the D-NOISE addon. It's a much better version of the standard denoiser, I can normally use only 40 samples and get an artifact-free render.
A lot of people say to minimize light paths, I wouldn't recommend this as it makes the render less realistic and is very noticeable with interior renders lit with a hdri as the light cant bounce of the walls properly.
link > https://remingtongraphics.net/tools/d-noise/

Perhaps add a few words about what it does?

it's a denoiser it removes noise from rendered images

Light Portals
In addition to the answers regarding samples, you could use portals to decrease your render time, allowing more samples for the same amount of render time. (Sometimes, portals get rid of a bit of noise as well)
Note: Portals don't change the look of your render, they get rid of the non-visible light rays outside of your room.

Another fun way is to use AI to enlarge your render. By rendering out at a lower scale you safe time and thereby can increase the samples.
I use Gigapixel AI: https://topazlabs.com/gigapixel-ai/


text:
How to find the pixels of a texture for a certain face
I'm making a script that determines the color of a face, based on the texture. I have an object that is UV unwrapped and has a texture assigned. What I would like to do is find the pixels that are in the UV space of a certain face.

I have something that works, but it is terribly slow. For every face I loop over all pixels of the texture image and determine if they are inside the UV space of the face. Not the best method I think :D
In the Python API documentation I found something about MeshTextureFace and this seems exactly what I need. But I have no idea how I could use this.
Any ideas?

By the sounds of it, you just need to optimize what you have.
Some suggestions.

Don't check every pixel, at the very least calculate a bounding box around the face's UV's and only check those pixels.
Rather then do a point-in-polygon test for each pixel. Use a scan-line method. See:  Darel Rex Finley's Efficient Polygon Fill, Or Blenders version of it fill_poly_v2i_n

Note that being a scripting language Python isn't ideal for these tasks - but it can likely be sped up enough to be usable as long as you don't need real-time feedback.

Update, made a more efficient version of Darel Rex's algorithm, see link.(avoids looping over all coordinates for each y-pixel).

Thanks Campbell, I will try to use the method of Darel Rex Finely. So there is no 'easy' way? No access to some already existing functionality in Blender I could use?

@jasperge, no, generally per-pixel operations are not very good to do in Python, so we dont provide helper functions for these kinds of tasks. It shouldn't be too hard to port fill_poly_v2i_n to Python (think it reads a little easier then the original).

Sorry, for slow reaction. I finally got around to implement the fill_poly_v2i_n. Together with some other optimizations (still no bounding box), the processing time went from a few hours to a few minutes!

@jasperge would be good if you could post the code here, or at least a link to it.

Indeed it would. But the problem is it's too much tied in with the rest of the code. I will see if I can get the core part out and post it here.


text:
Is it possible to dump an Objects Properties and Methods?
Due to the lack of a class diagramm I need to explore the data structures by dumping objects to see what is in there.
How can I dump the Objects internals to the console?
In this snippet I tried to print the objects but I only get error messages 'TypeError'
def assignPose( plIdx ):
    rig = bpy.data.objects.get("rig")

    if rig != None:
        print("rig=" + str(tuple( rig ))) # TypeError: 'Object' object is not iterable
        print( "" + rig.__str__ )         # TypeError: Can't convert 'method-wrapper' object to str implicitly
        pl = rig.pose_library
        pl.poselib_apply_pose( plIdx )
    else:
        print("couldn't find rig.")

What do you want to see as output exactly? If you want bones of the rig try tuple(rig.data.bones). If you want to get names of properties of rig itself, try dir(rig)

Pure Python questions like this are better placed over at Stack Overflow. As you've found, there are many pre-existing ones there too, here's another: How do I look inside a Python object?

@Aldrik I had to try several approaches since not all of them work with blenders data structures, so I posted the answer to document this for later reference.

@stacker Python has built-in functions to do what your after, see link in previous comment.

I found a solution to get started:
def dump(obj):
   for attr in dir(obj):
       if hasattr( obj, attr ):
           print( "obj.%s = %s" % (attr, getattr(obj, attr)))

This is based on one of the methods suggested on this Stackoverflow post and this
Instead of invoking print call dump( anyobject )
This would print something like:
...
obj.copy = <bpy_func Object.copy()>
obj.cycles_visibility = <bpy_struct, CyclesVisibilitySettings("")>
obj.data = <bpy_struct, Armature("rig")>
obj.delta_location = <Vector (0.0000, 0.0000, 0.0000)>
obj.delta_rotation_euler = <Euler (x=0.0000, y=0.0000, z=0.0000), order='XYZ'>
obj.delta_rotation_quaternion = <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0
000)>
obj.delta_scale = <Vector (1.0000, 1.0000, 1.0000)>
obj.dimensions = <Vector (0.0000, 0.0000, 0.0000)>
obj.draw_bounds_type = BOX
obj.draw_type = WIRE
obj.dupli_faces_scale = 1.0
...

Please add a reference (http://stackoverflow.com/a/192184/155813 ?) from where you found the solution, so that others can explore  related solutions/comments.

@mg007 Good idea, added a reference btw. this was the only one working with blenders objects.

I've built off this idea and extended it to do some recursion / memo-ization: blender_dumpy.py - example snippet from the Race Spaceship demo: gist snippet

There is already an addon called API Navigator to explore the API.
It has to be enabeld first in the User Preferences

Looked for this in 2.80, but guessing it may not be maintained :( See above comment for my hacky workaround based on object enumeration.


text:
Does OSL work on the GPU?
On openshading the FAQ says:
OSL only works on the CPU for now. It would be possible to port the system to GPU, but it would require a lot of work. There are no immediate plans for it.
What does this mean? Does this affect only OSL script nodes? I noticed that a a OSL script wave_rot.osl is compiled in wave_rot.oso which looks like assembly source code (but not for ia64 so I guess it is code for CUDA).

From the wiki:

Users can now create their own nodes using the Open Shading Language (OSL). Note that these nodes will only work for CPU rendering; there is no support for running OSL code on the GPU.

Quote from Brecht:

The main issue is to get OSL working on the GPU. It's almost as much work as building Cycles itself. It's not easy to do so we need more people to help us.

The oso file just contains the shader compiled bytecode.

Thank you,I found another reference here: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/OSL which also mentions the oso bytecode.


text:
Is there a more efficient way to edit actions alread used in NLA?
When not happy with the results in an animation the action can be edited again (Tab in NLA-editor). After that the action is displayed with a snowflake indicating that it needs to be freezed again.
After editing

After adding the updated action (Shift-A Add Action Strip)  shown as Walk.001

Do I really need to replace all occurences of the edited action in the NLA-editor or is there a another way to apply changes (in place) ?

The snowflake button is only displayed for actions not added as an NLA strip, or newly created ones.
For actions already contained in a strip, it's much easier to select the strip and Tab to tweak it. After that, just Tab again to exit strip-tweaking mode. There's no need to replace existing strips: the action's change will be reflected immediately in all strips containing it.

At worst, you will have to Sync Action Length Alt-R on each strips and rearrange them if their action's duration is changed. Replacing action strips is almost never necessary.


text:
Why doesn't the Grid Fill Tool work on this mesh?
I would like to create faces within the selected edges that match the geometry outside.
In case that is not possible at all using Grid Fill Is there another way to do that?

For me it doesn't look too different to the situation shown in the documentation:

.blend

Could you upload your .blend? From what I can see, I think grid fill should be working.. As an alternative, you could select the two long edges and bridge them (W+E), then make 5 loop cuts and remove doubles. I'm not sure if that will work perfectly though.

@gandalf3 Thanks, I uploaded the .blend, this should become  a test file for 3D printing therefore the mesh shouldn't be messed up by manual fiddling single vertices.

If you separate the handle section with Y and then try grid fill on it, it works (I'm assuming that the problem has something to do with the faces connected to the boundary). However it doesn't give the expected result, even after tweaking the span and offset parameters.

@gandalf3 Thanks, what result did you expect? After separating it behaves exactly as described in the tutorial. I'm happy with that.

I expected the result that you got, but it behaved all strange for me. I must have done something wrong, I'll investigate more tomorrow.

As Gandalf pointed out the area can be Grid Filled by:

Separate V the selection
Grid Fill Space,Grid Fill or Ctrl-F / Grid Fill
Remove Doubles Ctrl-V / Remove Doubles

Hm. Not sure why it didn't work for me.. BTW, you can also get to grid fill from the Ctrl+F menu.


text:
How to chance radii of many cylinders at the same time?
I want to change radii of the cylinders without moving each one.

Now the radius of each cylinder is 0,6cm, I want to make them 0,13cm.
Is is possible?

Related: https://blender.stackexchange.com/questions/87757/how-do-i-rotate-a-group-of-objects-around-their-respective-centers/87761#87761

As Josh points out in his answer .. if you know you're going to want your objects to be identical, it would always be a good idea to Alt-D make them instances of a single mesh, rather than Shift-D, copies of it..

If they are equal, you can select all of them, Ctrl L Link object data, then if you modify one, every other will be modified as well. Press U to turn back to single user.
To vary the radius of the cylinders without affecting loc and rot, choose the "normal" transform orientation, select the top of one cylinder and click this plus button to create a new custom transform orientation, call it "face normal".

Then choose face normal as active transform orientation, select all vertices of one cylinder and press  S Shift Z Z.

But if i change the scale or delta scale the cylinder will move. I don't that the cylinder stay in the same place

I edited my answer

'Normal' is one of the orientation presets .. you don't have to select it to create a Custom Orientation from a face. Z will always be the vector which is the mean normal to your selection of 3 or more vertices (face or not) , Y the vector between 2.

@Robin Betts you are right, but this way it works even in object mode with rotations applied.

I'm with you on the Custom Orientation.. was just thinking you don't have to go through 'Normal' to create it ... or .. I was hoping for a whole new dimension to CO's which I hadn't found yet :) Not a big thing.

@joshsanfelici perfect!