text:
How do I make a procedural texture fit into a mask with seamless edges?
I've created a procedural noise texture in Blender's shader editor (fig 1), as well as a mask which, using 2 gradient textures (fig 2), contains the noise only to the central part of the mesh. (fig 3)

The noise's colour ramp means that the edges of the noise blend to a darker orange colour, but where the mask's edge is, the noise is sharply cut off without the same fade to dark. (fig 4)

Is there some way to preserve the noise and mask as they appear now, but to somehow make blender apply the colour ramp to the whole noise within the mask so that it similarly blends from yellow to orange like the noise in the center of the mask? (fig 5 - illustrated roughly in GIMP)

The texture is intended to be animated, so simply painting the effect in is not possible.
Here is my node tree: the top part is the noise and colour ramp. Below that is a copy of the noise texture which is used with the gradients below that to limit the mask to the central part of the mesh.

Thank you to those who take the time to read this, and for any who can help me understand how to do what I'm after.

Mask the noise before color ramp.

You need to make the mask affect the noise itself, so the gradient of the mask will become a gradient in the noise.
(I had to use an "add" because the ramps are inverted, usually we use a multiply for that, it's easier to understand, but then both ramps should grow to the right)

Result:

Just to avoid any doubt, the gradients I used got white outside, just like yours.

Thanks for your response. The result you have look just like what I need, but there are some issues. I have followed your node set up precisely, but I am having a strange issue where most of the colours are getting masked out leaving the end result looking nothing like the original noise in my question pictures.
Edit: Never mind, my bad! Seems that I forgot to change the threshold value on the Greater Than math node. Everything appears to be working as it should, and as I'd like! Thank you very much for your help!


text:
How can I scale down a an object with keyframed animation?
I've modelled something that I want to break apart, and used a rigid body simulation to achieve this. Edit: Additionally, the final results have been baked to keyframes.
The issue is that, to get the correct results, I was forced to scale up my original objects. I need to scale everything back down, including the animation.
Creating an empty and parenting my objects to it, then scaling down the empty, ensures everything is the correct size, and that the animation looks correct.
However, when attempting to apply the scale of the objects, the animation 'breaks' and now everything looks wrong.
How can I get the scale I need, while preserving the animations, without needing to keep everything parented to the empty? This is intended for export, so I can't just keep it.
Edit: I think I figured it out:

Do your simulation. Bake the results to keyframes when satisfied.
Parent everything you want to scale to a new empty.
Scale to desired size.
Select whatever part of your mesh needs to be scaled
Bake action. Select 'Visual Keying' and 'Clear Parent'
You can now delete the empty as it is not being used
Go into the graph editor, then for your mesh or meshes, navigate to "Action Bake"
Delete X/Y/Z scale
Finally, select your meshes and apply scale. Everything will be 1.1.1 and your animation should be scaled properly

why do you want to apply the scale?

The model is intended for a game, and it needs to be at the scale it will appear at in-game when I export it. If this was just for a viewport animation or something, keeping the animation scaled down through the empty would be fine.
In order to get the simulation results I wanted, I had to make everything bigger. I want the final model elements to look how it should be before it was scaled up, with the newly baked animations also scaled down

did you use rigid body -> apply transforms?

My apologies, I forgot to mention that the simulation has already been baked to keyframes. I'm not sure where/when I would apply that, at which stage in the workflow?

I'm not sure about your workflow. If re-baking is an option, do it with apply transforms selected. Otherwise, eg in Unity you can tell an object (fbx) to import at any scale. Maybe that might be the quicker solution

Alrighty, I think I figured it out. After scaling the objects with the empty, then scaling it down, I rebaked the animations. This time, selecting visual keying, clear parent, overwrite action. After which, I could go into the graph editor and delete the "action bake: x/y/z scale". Then I was able to apply the scale to each element. The animation plays how it should, at the size it should, at 1/1/1 scale. I'll update my question.

source: Stack Exchange

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

sort: votes


text:
How can I make this subdivision deformation better/more consistent?
I'm modelling something, and I've hit a snag. I wanted to use the subdivision modifier to get nice curves and some extra geometry, so that I could perhaps sculpt on it:

The issue is that the two raised projections with the gap between them don't properly flow with the shape of the model when subdivision is active:

I think the issue might be this pole, but I don't know how I'd go about getting this shape without it:

I noticed that I could add a bevel to that edge too, and while it gets rid of the distortion, I then lose the nice curve I wanted, and am left with an obvious unsightly crease:

I would very appreciative of any guidance someone could offer me!
Edit: included .blend. May look a little different to pictures, I was fiddling with it while trying to figure it out.
Answer Edit: Thanks for the answers! I tried out both methods and they both look good, although vklidu's creasing method does have the drawback of leaving that creased edge, even with a transitional quad. Moonboots' topology guide was helpful, and made me realise the shape needed more support loops. I guess next time I won't just leave it up the bevel modifier + subdiv.

Probably better to share your blend ... First image seems to have double faces or normal twists ... Another you can't use Bevel for a reason you spotted, you should limit the angle ... Did you use crease on some edges?

You can try with this topology:

Thanks for your help; I've updated the question with images showing the results of following both answers.

With Subdivision Surface modifier and Crease you can get this ...

If sharp edge botter you, you would have to create a quad to help interpolate critical place ...

Thanks for your help; I've updated the question with images showing the results of following both answers.

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


text:
Why is the transform control at the 3d cursor and not at the selected vertex? How do I fix this? [SOLVED]

I just want the controls at the selection. I know I can hit G then axis but I would still like to know how to get the controls at the selection. This is blender 2.9.

Check the Transform Pivot Point panel, you must have the 3D Cursor selected, instead of Median Point for example:


text:
Cannot get texture to render using UV map
I'm new to Blender and am trying to understand UV mapping using this tutorial: https://www.youtube.com/watch?v=XeBUfMKKZDo
I modeled a simple staircase by starting with a cube. First I subdivided two adjacent edges, then I added new edges to connect the new vertices, and finally I moved the new vertices to form a staircase. Propably not the most efficient way to do the job, but I wanted to do something simple that (I think) I understand.
Then I followed the tutorial and added seams to my model and made an UV unwrap to it. The unwrap looks exactly as it should in the UV editor, but when I continued to add an UV grid texture to the model like in the tutorial, the resulting texture is a complete mess.

I've tried to do the UV unwrap several times with little changes, but it doesn't affect the result. My best guess is that the UV map is correct, but for some reason it is not used in the model and I can't figure out what I'm doing wrong.
Edit. I appended the model to a clean project, but it still behaves the same. Here is link to the file.

Can you add a screen shot showing your material?

Hi! Could you please share your blend file  https://blend-exchange.com/

Have you accidentally created and edited another UV map? https://i.sstatic.net/LLqUE.jpg The selected UV map is the one you see in the editor on the left side. The one with the camera icon is the one you see in the viewport on the right side.

I added a blend file with the problem.

It's exactly what I've asked you in my previous comment. Maybe you missed it. You have 2 UV maps. Select the correct one.

Thanks. In fact I did check that, but somehow didn't understand that automap was the second one.

As stated by Blunder you have 2 UV maps. Removing the unused UV and unwrapping the one named "automap" solved the issue.

Also you do not need that many seams for a staircase. I've attached an example below, this will help save performance during renders, although your method might allow for a specific texturing workflow.


text:
"Complex" geometry - UV Mapping
any ideas why the UV map is not showing up at all with this object? Its a Shell like geometry (hollow on the inside). Generated through simplicity modelling in Grasshopper.
Any help is appreciated!

hello, we don't see any picture, please give more informations

@moonboots sorry, its late in Zurich ^^. I hadnt added the picture. Now it should show up.

have you unwrapped?

also select all in Edit mode, otherwise you won't see the UV in the UV Editor, unless you activate the sync option

Go into edit mode, press A to select all verts, then press U to unwrap (might be a different command), then select one of the options

You guys are completely right, thanks a  lot :)! I have gotten one to work. Is there a way to copy the uv unwrap/ uv projection to the other objects (of the exact same geometry)?

@ user134222 you can try that: select the objects you want to unwrap, shift select the object you have already unwrapped, and press Ctrl L > Tranfer UV Maps

thansk again :)!


text:
Image will not shrinkwrap to curved surface
This is the result I am getting from this image shrinkwrapped to the mug. The image has 200 loop cuts. I have tried other settings, such as project but most of them do absolutely nothing to the image.

UPDATE: If you look at the mug from the side you will see that the center markings on the road image are at different sizes. They are random sizes. Though they are gathering up and getting smaller as they go around the cylinder. None of the loop cuts are evenly distributed either.

From what I can see, it looks pretty much shrinkwraped on the screenshot. Perhaps you might need to send a screenshot with a more relevant angle

@Alex
I have amended the images to show a side view. Here you can see than randomness of the loop cuts when the shrinkwrap is applied and the affect it has on center lines which are all different sizes.

Try to change the wrap method to target normal project, it usually gives a better projection as you can see in these pictures

Also make sure the mug has enough resolution, the higher it is the more acurate the projection will be (it needs to have more resolution than the projected mesh)


text:
Making a mosaic fly apart corner to corner
I've been trying to solve this problem for days but get stumped every time. Their seems to be a black art of adjusting the physics settings for objects that are close together that simply eludes me.
The project: I'm trying to have a mosaic come apart corner to corner using a Wind force field.

I created a grid of 11 x 15 square blocks using the Array modifier. I then applied the array and separated them as indiviual objects. I then added an active Rigid Body to each. Beneath them is a grid with holes that the mosaic sits on, set as passive.

The wind is keyframed to start at zero Max Distance fall off so it has no effect on the mosaic at the start of the animation until it is massively increased.
The wind effect works, but when I run the animation the mosaic pieces are bubbling away like water.

Here is the blender file:

It's clear this is to do with the physics, and the objects being so close together, but nothing I try fixes it.

The Sensitivity Margin of all objects are set to zero. If these are increased by even a fraction the object instantly explodes.

The collision shape of each mosaic square is set to Mesh. If it is set to square then every object has no randomness. The mosaic rises up as one piece like a slab. Only on Mesh do the mosaic pieces flip individually and display randomness - as I want them to - as they fly into the air.

The passive grid platform is set to mesh with 0.04 sensitivity. Any lower and the mosaic pieces somehow fall through the mesh cut-outs (even though they cannot fit!) Any higher and all the mosaic pieces instantly explode up into the air. Setting the grid platform to Box makes no difference.

Under Scene Properties > Rigid Body World, the Substeps Per Frame are set at 1. Any higher - such as 10 - all of the pieces instantly explode.

I have ensured all origin points and scale are set on each object.

I have tried increasing the size of the objects and although this stabilizes the mosaic considerably, all of the panels fly into the air uniformly and will not rotate. Unlike at small scale where they all rotate differently. I assume this is because the jittering is causing some instability which causes them to rotate when the wind hits them.

Physics simulations aren't quite comfortable to work with (for me). A lot of trial and error, each time baking the simulation and thus waiting. Fine control is harder too. Do you really need Rigid Bodies if they don't interact at all ? Did you consider using Geometry Nodes ? It's powerful, almost limitless. Your animation would be somewhat easy to implement, in my opinion. (My comment is out of topic if you know you want to use Rigid Bodies)

I'm not very good with Geometry Nodes. Making them fly apart with nodes is beyond me.

Are you interested to a similar animation with GN ? I could write an answer soon, unless you want to stick with Rigid Bodies. Let me know :)

Two changes to your simulation:

(almost) never use 'Mesh' as an objects shape. Only if there is really no other way and you only have a few slow moving objects. In your case you should use 'Box' for all tiles and the base. This will fix all your collision problems.
Create your own randomness. You mentioned you don't want to use the proper collision shapes because they make all objects act uniform. The wind Force applies the same force to all objects so of course they all act the same. If you want randomness you should create it with the 'Noise' settings in the force field or just create multiple force fields. You could add a Turbulence force and uncheck the 'location' property to randomize rotation. I am not sure what you mean by 'have a mosaic come apart corner to corner' but maybe even change your wind force to a vortex with high noise. Just play around with the forcefield settings.

Also don't decrease your substeps to fix collision proplems.


text:
Adding material properties in blender using python?
I have created a cube in blender using python. I have modified the code a little bit by dividing each face of the cube further into 4 sub-faces. The example code I used is from Python API.
import bpy

vertices=[(1,1,-1),(1,-1,-1),(-1,-1,-1),(-1,1,-1),(1,1,1),(1,-1,1),(-1,-1,1),(-1,1,1)]
edges=[]
faces=[(0,1,2,3),(4,5,6,7),(0,4,7,3),(0,1,5,4),(1,2,6,5),(7,6,2,3)]

new_mesh=bpy.data.meshes.new("new_mesh")
new_mesh.from_pydata(vertices, edges, faces)
new_mesh.update()

new_object = bpy.data.objects.new("new_object", new_mesh)
view_layer=bpy.context.view_layer
view_layer.active_layer_collection.collection.objects.link(new_object)

Now, I want to convert two sub-face from each face of the cube into a glass material. This is what I did for adding a new glass material.
# Create a new material
face_to_convert_to_glass = [(0,1,2,3),(4,5,6,7)]
material_glass = bpy.data.materials.new('Green')
material_glass.use_nodes = True
p_BSDF = material_glass.node_tree.nodes["Principled BSDF"]
p_BSDF.inputs[0].default_value = (0, 1, 0, 1)
p_BSDF.inputs[7].default_value = 0
p_BSDF.inputs[15].default_value = 1
bpy.context.object.data.materials.append(material_glass)

It may be a simple thing but being a novice I am not able to link the glass material with the new_object I created. How do I achieve this using Python ?


text:
Why does my rig deform when rotating it?
this is my first time posting a question on online forums. I am relatively new to blender and have been working on an attack animation for the past few days. I've been using the Mr. Mannequin add-on to streamline the process of importing the animation to unreal engine 5, however, I've run into a problem near the end of the animation.
When I've copy pasted my first key-frame (which is basically the 'default fighting stance'), to the very end of the animation, my mesh deforms really weirdly in between the 2 last key frames. Here's a gif of what it looks like.

From scouring the internet in the last few days, I think the problem stems from the way Quaternions and Euler's are calculated in blender. However, I haven't found a way to the fix the problem.
Any helpful tips or just an explanation on what to do will really help.
You can find my project at Paste all here
Thanks in advance,
Silver
EDIT 1: Here's my new file moonboots: https://pasteall.org/blend/006ee94f23f44211856d65cb010e240b
EDIT 2: Hey guys, I've managed to fix my animation by just brute forcing it and adding keyframes in between the 2 problem frames and I'm pretty happy on  how it's looking right now: here's my improved animation.
There are a few areas I'd like a bit of advice on though:

While all the other bones look good, the left leg still seems a bit jittery on the last segment.

If you look closely at the part where the kick happens, right after when the legs are beginning to retract, the entire mesh seems to have moved backwards on the y-axis. I don't know how and when this happened but I was wondering if there was a way to move this and all subsequent keyframes along the y-axis a certain distance at the same time.

Finally I was wondering how to speed up the entire animation as a whole.

Thanks a lot in advance,
Silver.
Final Edit: Hey guys, I've been working on the animation for the last couple of days and I think I've finally done it:
Thanks to everyone who helped me,
Silver.

You need to keyframe your legs IK controllers and IK pole targets, they have no keyframe during the final rotation so your legs begin to cross and go mad. Here I gave them some keyframes:

See the final kick, I've moved the knee pole target away and it works fine:

Comments are not for extended discussion; this conversation has been moved to chat.

I have trouble recreating your problem.  It doesn't show up on the animation that runs in the file you provided, not on my machine.  Duplicating all bones' frames from frame 1 onto frame 50 gives me a different animation-- there's a problem, but it looks a lot different than what you're showing.  So I can't be certain that I'm addressing the exact problem you're experiencing.  But I can guess at what the issue is:
For any orientation, there are two different quaternions that represent it: one with a positive W, and one with a negative W.  However, they are interpreted by Blender as rotation in opposite directions.  If you interpolate a bone from the positive W quaternion to the functionally identical negative W quaternion, you will see the bone go through a full rotation-- up to two full rotations, actually.  This happens frequently when you have spinning models.
If you're working with different engines, and you're not baking animations, it's not always necessary to fix this.  Blender handles quaternions differently than most animation engines do (most animation engines run quaternions as "shortest path" rotation, so the direction is never encoded in the sign of the W component.)  You'll have to see in your own engine, with the techniques you plan to use, if there is a problem.
The fix to this is to use two closely spaced keyframes at the problematic frame, each with different W signs.  If two keyframes are on adjacent frames, the extra rotation will never be seen (except if you're doing motion blur or something, then you have to be more careful.)  A different way to do this is to use constant interpolation for the section where the W sign flips.
You can find problem places wherever a bone's W component crosses the X axis.  My knowledge isn't perfect, but the first thing you should consider to fix the interpolation is just scaling later keyframes' W by -1 to stop it from crossing the axis.  This should usually get you the same orientation (but I've seen times where it hasn't, and I don't know why, so that's why I don't have a lot of confidence in my understanding of it all.)
This can be a little tricker for blended animations in the NLA.  You should expect NLA blending to behave the same as game engine blending, so if you're rendering elsewhere, test your animation blending where you're rendering and forget about NLA.  When I've had trouble with NLA work in Blender and animations that started/began with different W signs, I've managed it by creating blend-out strips on hold to hold the quaternion sign until the exact beginning of the next strip.
There is discussion among Blender developers to change the way Blender handles quaternions (to add "slerp" interpolation) so hopefully some day this will no longer be an issue.

I see thanks a lot for the explanation. If I understand correctly you're asking me to first test the raw animation in the game engine I'm planning to use to check if the problem carries over and if it does, you're asking me to multiply all the bone W values by -1 where the problem happens.
Right now, I've kind of fixed the animation by just brute forcing every frame in between the 2 frames where the problem happens, but I'll definitely give your suggestions a try in case they turn out to be more efficient ways of dealing with the situation.
Thanks, Silver

Hey Nathan, I tried playing the animation in unreal engine and unfortunately the deformation carries over. I've also tried to invert all the W values I've had no luck with that either. Good thing is I've got the overall animation working correctly now so it should be completed in a few more days. Thanks for your help, Silver


text:
mapping latitude-longitude to pixel space, in image produced with panoramic equirectangular camera
I am working with a 360 virtual camera in Blender, with latitude angles ranging from -90 to 90 deg and longitude angles ranging from -180 to 180 deg. The rendered images are obtained through equirectangular projection (that is, linear mapping from latitude-longitude to pixel space). Suppose a certain output image has a size of nrows x ncolumns, with longitude increasing from left to right, and latitude increasing from bottom to top.
I was wondering which of the following options for mapping pixels to latitude-longitude is more aligned with how the rendering engine works:

Would the centre of any pixel in the leftmost column of the rendered image correspond to the -180 deg direction?

Or would the left edge of any pixel in the leftmost column correspond to the -180 deg direction?

I think the question can be rephrased as: is a pixel defined as a unique direction or as a small solid angle?

Some more details:
My understanding initially was that the first mapping is more appropriate. I assumed that for assessing depth or object ID of one pixel, Blender casts a few rays from the camera origin through that pixel, and an average value is taken. I'd expect that in that case, the first and last column of an image (corresponding to -180 and 180 longitude) would be always almost identical. However, this is not the case across my animation. For example when I added object ID images across many frames of my animation, the first and last columns are no longer similar. Shouldn't they be the same always if they represent the -180 and 180 deg directions? If they are not the same, is it possible that the +180 and -180 directions correspond to the edges of the pixels at the leftmost and rightmost columns of the image, rather than the centres? Or is it probably due to an artifact?
I realise the difference is small but I want to make sure I am doing the mapping from latitude-longitude to pixel space correctly, or as aligned as possible with the way the rendering engine works.
Thanks!

-180 corresponds to the edge.  Otherwise, there would be overlap-- would you sample from the right column or the left column at -180.1 degrees?

@Nathan so then I understand a pixel corresponds to data from a small solid angle, rather than from a unique direction? That is, the data in the pixel in the bottom left corner comes from rays with longitude angles ranging from -180 to -180+(360/ncolumns) and latitude angles ranging from -90 to -90+(180/nrows). Is that correct? That would be in line with the code [here] I think (https://github.com/blender/blender/blob/118664e4631a29c9a4f1f8e06be124c8ea3a006a/intern/cycles/kernel/kernel_projection.h#L66). I think I am confused bcause I don't understand well how the sampling within a pixel works

Yes, that's correct.  At 180 degrees longitude, you're sampling exactly between the right and left edges from an X-tiled, Y-mirrored version of the image.  Pixels are rarely sampled as single indivisible chunks (but you can force that with closest sampling.)  See https://en.wikipedia.org/wiki/Texture_filtering for more information about how textures are generally sampled.

this was very helpful, thank you!


text:
Textures look fine in edit mode but go crazy in object mode
Hi I'm trying to add a wood&paint texture to my house but when I try that blender goes a little crazy. I'm pretty new to Blender btw.
I added a texture from Poliigon, smart UV projected my house and applied the texture. In edit mode it looks reasonable but when I leave edit mode every face gets rotated weirdly like in the picture.
The house has a couple of modifiers:

Displace (to make the planks look old)

Solidify (giving the planks thickness)

Boolean (intersect for the roof)

Boolean (difference for the windows and doors)

Edit mode view:

Object mode view:

Shader:

Mesh:

Can anyone help me with what's going wrong here?
edit: I've tried applying the modifiers in different orders, re-unwrapping the mesh after that but that didn't work. I also tried adding horizontal seams across the mesh but that made no change either.

Try applying or disabling different modifiers to see if that changes how the texture is projected.

This doesn't work, even if I UV unwrap it again. I've also tried adding horizontal seams to the mesh but that didn't change anything either.

Maybe there are overlapping faces? Have you check the normal face orientation? Make sure its all blue. And try to apply the rotation scale. If you don't mind, maybe I can take a look the blend file.

@YogiSeptiargy Nope the mesh is all good :/


text:
What is area region type HUD and where to find?
In Blender API (3.4) I can see that HUD is a Floating Region

Region Type Items >   HUD: Floating Region
Region Type Items

and attribute show_region_hud is available for some (not all) SpaceEditors.

bpy.types.SpaceClipEditor.show_region_hud
bpy.types.SpaceGraphEditor.show_region_hud
bpy.types.SpaceImageEditor.show_region_hud
bpy.types.SpaceSequenceEditor.show_region_hud
bpy.types.SpaceView3D.show_region_hud

But I can't notice any difference in UI when I toggle VIEW3D.spaces[0].show_region_hud in Workspace Layout. Attribute was changed. No context error.
import bpy
for area in bpy.context.window.screen.areas:
    if area.type == "VIEW_3D":
        print("VIEW3D Regions in [%s] " % bpy.context.workspace.name)
        for region in area.regions:
            print("  -", region.type)
        print(area.spaces[0].show_region_hud)
        area.spaces[0].show_region_hud = not area.spaces[0].show_region_hud
        print(area.spaces[0].show_region_hud)
        break

In Blender Manual there´s no hit for region type HUD.
Three matches on Blender SE, but not very helpful for me:
Is there a reference for how to add custom keymaps to operators in an addon?
What is the purpose of shift-f
Sub Panels for the Add Object template
Does anyone knows more about?

AFAIK HUD is the popup panel that opens in the lower left of the 3D viewport when you use an operator

That's it. You are absolutely right. With area.spaces[0].show_region_hud = False there is no operator panel anymore. Please make an answer I will accept. Thanks.

@relaxed, just to add i think it is the same as "Adjust Last Operation" in the View menu of a 3D viewport

@R M K Close, but the setting can be used to prevent the operator from popping up in the lower left corner.

I think there is a setting specifically for that in bl_options of an operator. In my experience messing with this panel leads to undefined brehaviours (crash) see https://docs.blender.org/api/current/bpy_types_enum_items/operator_type_flag_items.html#rna-enum-operator-type-flag-items


text:
Can I highlight activated buttons in blender python script?
I've been working on a Add on for my job for almost 3 months now (I have never programmed in my life i didn't know what i was doing)- It lets anyone create their own dental model to print and practice on and i was really happy with it but for the last 2 weeks i've been completely stuck- this is what it looks like so far:

Each number stands for a position on the jaw, it can either be:
B- Blank,
S- a stump, or
T- a tooth
only one button can be active at a time so nothing overlaps, BUT i really want the last pressed button to be highlighted so you can see what you already did.
I figured a radio button system would be perfect for this but i just can't do it, what am i doing wrong?
This is what the code for one row usually looks like:
def draw(self, context):
    layout = self.layout

    row = layout.row(align=True)
    row.label(text="11")
    row.operator("object.delete_operator", text="B").object_name = "11"
    row.operator("object.subdivision_operator", text="S").object_name = "11"
    row.operator("object.custom_operator", text="T").object_name = "11"

Then i modified it
def draw(self, context):
    layout = self.layout

    row = layout.row()
    row.label(text="11")
    layout.prop(context.scene, "my_enum_property", expand=True)
    if context.scene.my_enum_property == "B":
        row.operator("object.delete_operator", text="B").object_name = "11"
    elif context.scene.my_enum_property == "S":
        row.operator("object.subdivision_operator", text="S").object_name = "11"
    elif context.scene.my_enum_property == "T":
        row.operator("object.custom_operator", text="T").object_name = "11"

and added
enum_items = [
("B", "B", "Delete Operator"),
("S", "S", "Subdivision Operator"),
("T", "T", "Custom Operator")]
bpy.types.Scene.my_enum_property = bpy.props.EnumProperty(
name="Options",
description="Select an option",
items=enum_items)

But then somehow a dublicate button appears and i can select all buttons but only once i press the dublicate something actually happens?
I'm so exhausted there is so much i still want to do here but i just feel burnt out- any help would be greatly appreciated

In short: You are using an EnumProperty to draw Operators to the layout.
if context.scene.my_enum_property == "B":   # if enum = value
    row.operator("object.delete_operator", text="B").object_name = "11"   # draw this operator

In this case I would use only operators in the layout that can be highlighted with attribute depress (Manual).
The enum is used in the background, changed in operator classes, to highlight the layout operator elements.
import bpy

### UI
class TEST_PT_Panel(bpy.types.Panel):
    bl_idname = 'TEST_PT_Panel'
    bl_label = "Test Panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "TEST"

    def draw(self, context):
        layout = self.layout
        row = layout.row(align=True)

        row.label(text="11")

        row.operator("object.delete_operator", text="B",
                      depress = True if context.scene.my_enum_property == "B" else False  # this highlights op if enum = 'B'
                    ).object_name = "11"

        row.operator("object.subdivision_operator", text="S",
                      depress = True if context.scene.my_enum_property == "S" else False  # this highlights op if enum = 'S'
                    ).object_name = "11"

        row.operator("object.custom_operator", text="T",
                      depress = True if context.scene.my_enum_property == "T" else False  # this highlights op if enum = 'T'
                    ).object_name = "11"

### OPERATORS
class OBJECT_OT_Delete(bpy.types.Operator):
    bl_idname = 'object.delete_operator'
    bl_label = "Delete Operator"
    object_name : bpy.props.StringProperty()
    def execute(self, context):

        context.scene.my_enum_property = "B"  # set enum to "B" to highlight op in layout

        # control output
        print("Object:" , self.object_name, " / Operator:", self.bl_idname)
        return {'FINISHED'}

class OBJECT_OT_Subdivision(bpy.types.Operator):
    bl_idname = 'object.subdivision_operator'
    bl_label = "Subdivision Operator"
    object_name : bpy.props.StringProperty()
    def execute(self, context):

        context.scene.my_enum_property = "S"  # set enum to "S" to highlight op in layout

        # control output
        print("Object:" , self.object_name, " / Operator:", self.bl_idname)
        return {'FINISHED'}

class OBJECT_OT_Custom(bpy.types.Operator):
    bl_idname = 'object.custom_operator'
    bl_label = "Custom Operator"
    object_name : bpy.props.StringProperty()
    def execute(self, context):

        context.scene.my_enum_property = "T"  # set enum to "T" to highlight op in layout

        # control output
        print("Object:" , self.object_name, " / Operator:", self.bl_idname)
        return {'FINISHED'}

### REGISTRY
classes = (
    TEST_PT_Panel,
    OBJECT_OT_Delete,
    OBJECT_OT_Subdivision,
    OBJECT_OT_Custom,
    )

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    enum_items = [
    ("0", "", ""),   # nothing selected
    ("B", "B", "Delete Operator"),
    ("S", "S", "Subdivision Operator"),
    ("T", "T", "Custom Operator")]
    bpy.types.Scene.my_enum_property = bpy.props.EnumProperty(
    name="Options",
    description="Select an option",
    items=enum_items)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()

OMG, TYSM! You must have put so much time and effort into this. I can't thank you enough.  Just one more question if I'm allowed: I'm using 'import os,' and I have a couple of file paths in my script specific to my PC (I haven't figured out how to make actually downloadable add-ons yet). When I try to update my operators to your script and add the 'import os', the highlight permanently locks on the first button. Do you think that's because the paths are causing issues? Or could my operators be too complicated to make this work?

Oh, I forgot. This has nothing to do with the filepaths, regardless of whether you are using module os. If an enum property is initialized, the first item is set by default if attribute default not specified. Add an enum item at first position, e.g. ("0", "", "") to unmark all layout.operators. Now you can use context.scene.my_enum_property = "0" anywhere to reset the highlighted layout.operators. See line 80 in edited script.


text:
getting KeyError: 'bpy_prop_collection[key]: key "Scene Collection" not found' when I try and run this add on code
what does script is supposed to do is when you control left mouse button click a collection. It's supposed to select all the items in the collection and then you could do it again control left mouse button to select multiple collections... i'm getting the error that's in the title on Line 36 of this code. Any help on this would be appreciated...
NOTE: when you run it there is a button that has to be active in outliner filter settings For the script to function... and there's a bug in the script. I'm also trying to uncover that when you first install this add on or run it as a script in text editor you may have to disable and reenable that outliner filter button.
bl_info = {
    "name": "My Collection Selector",
    "author": "me",
    "version": (1, 0, 0),
    "blender": (3, 3, 1),
    "location": "Outliner > Filter > multi-select objects of collections > Active",
    "description": "Select collection and press ctrl + LMB in the same time",
    "category": "Collection",
}

import bpy
from bpy.props import StringProperty,BoolProperty

class MSOCModalTimerOperator(bpy.types.Operator):
    """Operator which runs its self from a timer"""
    bl_idname = "wm.msoc_modal_timer_operator"
    bl_label = "MSOC Modal Timer Operator"

    current: StringProperty()
    last: StringProperty()
    insert: StringProperty()

    @classmethod
    def poll(cls, context):
        return context.collection is not None #context.area.type  is 'OUTLINER' #and context.region.type == 'WINDOW'

    def modal(self, context, event):

        self.current = bpy.context.view_layer.active_layer_collection.name

        #Get Correct Collection
        if self.current != self.insert:
            self.insert = self.current
            if event.ctrl:
                if bpy.context.view_layer.active_layer_collection.name != 'Master Collection':
                    for obj in bpy.data.collections[self.insert].all_objects:
                        isSelect = obj.select_get()
                        if isSelect == False:
                            obj.select_set(True)
                        else:
                            obj.select_set(False)
                    #print(bpy.data.collections[self.insert].name)

        #Lock to master collection
        bpy.context.view_layer.active_layer_collection = bpy.context.view_layer.layer_collection

        #Cancel function
        if not context.scene.multi_select_collection:
            return {'CANCELLED'}

        self.last = bpy.context.view_layer.active_layer_collection.name
        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        #print("INVOKE")
        wm = context.window_manager
        wm.modal_handler_add(self)
        self.last = bpy.context.view_layer.active_layer_collection.name
        return {'RUNNING_MODAL'}

#UI draw
def draw_msoc(self ,context):
    scene = context.scene
    layout = self.layout
    row = layout.row()
    row.label(text='multi-select objects of collections:')
    row = layout.row()
    row.prop(scene, "multi_select_collection",text="Active", toggle=False , icon = 'GROUP')

#Toggle update
def msc_status(self, context):
    if self.multi_select_collection:
        # call function
        bpy.ops.wm.msoc_modal_timer_operator('INVOKE_DEFAULT')

def register():
    bpy.utils.register_class(MSOCModalTimerOperator)
    bpy.types.OUTLINER_PT_filter.append(draw_msoc)
    bpy.types.Scene.multi_select_collection = BoolProperty(update= msc_status)

def unregister():
    bpy.utils.unregister_class(MSOCModalTimerOperator)
    bpy.types.OUTLINER_PT_filter.remove(draw_msoc)
    del bpy.types.Scene.multi_select_collection

if __name__ == "__main__":
    register()

The return of bpy.context.scene.collection and bpy.context.view_layer.layer_collection has changed with Blender 3.0+ from 'Master Collection' to 'Scene Collection'.
print(bpy.context.scene.collection)
print(bpy.context.view_layer.layer_collection)

Blender < 3.0
<bpy_struct, Collection("Master Collection") at 0x000002AC35900A48>
<bpy_struct, LayerCollection("Master Collection") at 0x000002AC3599CF48>

Blender 3.0 >=
<bpy_struct, Collection("Scene Collection") at 0x0000010D2D52DC08>
<bpy_struct, LayerCollection("Scene Collection") at 0x0000010D2C5C27A8>

So change line 35 to if bpy.context.view_layer.active_layer_collection.name != 'Scene Collection':
see: https://developer.blender.org/D11812


text:
Viewing vertex alpha transparency in viewport
I'd like to use Blender 2.93.5 for modelling vertex coloured meshes but I'm unable to see the effects of Erase Alpha in vertex paint mode. I can see the alpha transparency in Blender 2.79c (nightly build) but not in 2.93.5.
Note: The meshes are to be used in a game engine with no textures or normals etc. The only attribute the vertices will have is an RGBA colour.
In Blender 2.79c you can see the effects of Alpha transparency using the Erase Alpha brush mode on the bottom vertices:

An exported 2.79c .ply file shows the vertices with the alpha set to zero, (the rightmost value, the 'A' of the RGBA value):

Note that in 2.79c I'm using the default material and have done nothing more than start Blender, added the plane mesh and then applied the vertex paint and erase alpha. The Renderer is set to Blender Render as per default.
Trying to reproduce this in 2.93.5 doesn't work. Here's another blueish painted plane with the bottom two vertices with Erase Alpha applied. I have tried Workbench, Cycles and EEVEE as the renderers:

An exported 2.93.5 .ply file shows the vertices with the alpha set to zero:

I've set up a nodes 2.93.5 shader like this hoping it would work:

I feel like I'm missing something obvious. In this link it mentions in the tip 'In order to see the effects of the Erase and Add Alpha mix modes in the Image Editor, you must enable the alpha channel display by clicking the Display Alpha or the Alpha-Only button. Transparent (no alpha) areas will then show a checkered background.', but I cannot find these buttons anywhere.
Any help would be appreciated :-)

To see Vertex Alpha in Eevee ...

Switch to Material or Render viewport shading mode
Set under Material Properties > Setting > Blend mode > Alpha Hashed

Notes:

Viewport shading mode Solid can display only vertex color, not alpha.
Result is quite grainy against smooth 2.79x ... I used Samples set to only 1 to see gradient better.

thanks for this solution, which I have tested and does work. The only thing is It looks like it isn't actually displaying variable alpha, more like alternating between fully transparent and fully opaque pixels in a dithered pattern. There must be another way of having vertex alpha properly display in the viewport, as in variable alpha not 1 or 0.

Just a few notes ...there is nothing like 2.79c ... Yes,there is a version of 2.79.7 with some features of 2.8 ... Yes, one of them is vertex alpha and alpha brushes, but this version use blender internal to display this transparency. So possibly adopted in a wrong way for Eevee ... Try to post as a bug report. Or try to place plane above nontransparent background ... Since there was some changes in 2.92 with emmisive light above transparency it could matter? In general I would say transparency should work with Alpha Blend than Hashed.

Your comments above confirm what I've read about 2.79c, in that it was a one off for true vertex transparency. Note that I'm not rendering any of these models. I'm only using Blender as a mesh tool for vertex coloured game assets and don't care about ray tracing or rendered stills / video sequences. I'm quite surprised that real vertex transparency in the viewport isn't highly demanded, especially for game mesh modellers, although the Alpha Hashed option is a usable workaround.

Now I see it is already reported as known issue https://developer.blender.org/T77581 sadly over a year ...


text:
Animate a falling cloth
I have a tapestry on a wall, and I want it to fall. Preferably, I'd like one of the top corners to come loose first, so it starts to fall towards that side; then the other top corner would come loose, and then the whole thing would end up in a reasonably realistic pile on the floor.
I've tried messing around with something like the curtain tutorial here: https://www.youtube.com/watch?v=PVGnvVij9Oc . But A) I can't keep the cloth from going through the wall my tapestry is hanging on, and B) even if it would stay out of the wall, I can't figure out how to animate the falling part.
Any suggestions?

I am not looking at the tutorial at the moment, but off the top of my head it sounds like a super standard cloth simulation.

Is there some trick to keeping a cloth from intersecting what it touches?

yes. Select the object I.e. the wall, go to Properties -> Physics, and enable Collision.

doh. well that was dumb of me. Next dumb question, I hope: how do you pin the corners up? I tried a Fixed empty, but that doesn't seem to work for cloth (tooltip says "rigid bodies")

Here is another option. It's using the Vertex Weight Proximity modifier and good
to simulate a poorly glued wallpaper that is coming off the wall.

The cloth simulation has a Pin group. The weights of this group are modified by the Vertex Weight Proximity modifier which is controlled by a hidden cube. (Don't forget to hide it for render.)

In the cloth settings, you need to set the Collision > Distance to a small value like (0.005). Place the control cube very close to the wallpaper and give it enough geometry. In the example, the default cube with 5 subdivision levels is used.

You can use the Vertex Weight Mix modifier.
Don't subdivide your wallpaper mesh too much if you don't want it to look too flexible. You can create 2 groups: The Pin group (the whole paper except the 2 top corners) and a group with no vertex that you'll call NoPin. Give your paper a Vertex Weight Mix modifier, then Cloth, then Subidivision Surface. In the Physics panel > Cloth > Shape choose the pin group. In the Vertex Weight Mix modifier, select Vertex Group A (Pin) and B (NoPin). Choose Vertex Set > VGroup A or B, Mix Mode > Replace. Keyframe the Global Influence value the way you want in order to mix from A to B:

Sounds like a plan. Thanks!

you can even create 2 objects and replace the first one when it has finished its simulation

Master of wallpaper +1

@Chris, it was not my fault, the glu was too bad

@moonboots : and who bought the glue?


text:
Trigger motion based on object rotation?
I have a very simple hinged paddle: there's a rigid, passive side that stays still, and there's an active 'paddle' side that can rotate from 0 to -45 Z around the hinge.

Right now, a ball drops from above directly onto the paddle, the paddle rotates down around Z like it should, the ball deflects off the paddle and keeps falling like it should, the paddle eventually rotates to -45 then bounces off that constraint and then flops around a bit till it loses momentum. Just basic rigid body stuff.
What I want is for the paddle to reach that -45 angle and then quickly rotate back to 0, deflecting the ball upwards. In other words: I want the paddle to actively swat the ball away.
I'd rather not do this by moving things manually with keyframes because A) I doubt I could get the physics to look right and B) this is something that needs to happen hundreds of times.
I'm very new to Blender. But I assume this is possible, somehow.
Can someone recommend an approach?
ETA:
The idea here is that I will have four of these paddles arranged at 90 deg to each other (paddles at the center), and they will all be bouncing the same large beach-ball up and down.I'm just trying to get the mechanics of one working, first.

Have you tried using a rigid body spring constraint?

@MartyFouts - I've played around with springs, but they don't seem to be able to put enough energy into the rebound for what I need. I need something that can give back at least as much energy as it takes in, but springs absorb too much energy, even with damping at 0.

Would you mind sharing your blend file?

blend file is at https://ok-cleek.com/stuff/yetagain.blend.
This doesn't have a spring on it (I discarded my attempts).

You can do it with a rigid body constraint.
Add an empty here:

Type: generic spring
Choose these settings:

Note: The orientation of the empty is important, else it won't work.
I took the freedom to change the mass of your ball to 10 kg.
result:

result with 400000 stiffness:

OK, that looks promising. I had tried springs, but not with stiffness values anywhere close to that high. Thanks!

you are welcome. If my answer helped you, please check the checkmark left to my answer. Thank you.


text:
Limit Location Constraint vs Rigid Body anim
Can the limit location constraint be applied to an object that is participating in rigid body collisions?
I have a rigid body ball that's bouncing up and down off of a spring-loaded rigid body paddle (with a little help from an upward force under the paddle). The paddle wants to add some X,Y motion but I want that to be ignored so I locked the ball's X and Y location transformation. That keeps it bouncing on Z in the animation. And this works fine, -ish. The issue is, at a certain frame, I want to allow that X and Y motion.
So I got rid of the transform locks and added a Limit Location Constraint to the ball. I set the X and Y max and min to 0 (the ball is in fact at 0,0,z). But it apparently has no effect in the rigid body sim. The paddle hits the ball, and the ball immediately deflects in all three dimensions.
Am I misunderstanding what that constraint does?
Is there any other way to do this?
Ex:
Here's a cube falling onto a plane. The Limit Location Constraint works fine as long as the plane is flat. The cube bounces, but keeps its origin on x=0,y=0. But if you tilt the plane...

Objects are either under the control of the animation system-- which includes f-curves and constraints-- or else they are under the control of the physics system.  There is no in-between.
If you would like to have an object that copies the Z location of an object, you can disable rendering on your rigid body, then make a new object that copies the Z location of the non-rendering rigid body.  Then, you can animate the influence of that constraint, and/or use it in conjunction with other constraints, to control exactly when the object is copying the Z location and, perhaps, when it is copying the XYZ location.  I doubt this is what you want, though-- if you switch suddenly to copying XYZ location, the object will jump, because your physics have been moving in XY for a decent chunk of time, ignored by that object.

A different option here, which is what I would recommend considering, is to create non-rendering rigid body physics that act the way you would like them to act.  If you want the cube to bounce straight up, then it can bounce off of a level but invisible collider.  Or, make an invisible collider wall, to keep the cube from moving in one or more directions.  These colliders can have the "animated" trait enabled, allowing you to move them out of the way whenever you want different behavior for your physics.  There's no reason that you have to render what your simulation sees.

Colliders aren't the only way you can gain control of a physical system; you can also use animated rigid bodies that are joined to a simulated rigid body via a rigid body constraint.
A final option here is bake your rigid body simulation to keyframes, then edit those keyframes, and then use them as the beginning of a rigid body sequence, during which the cube has the "animated" trait.  Any linear or rotational velocity will be recalculated based on the last animated frame.

Collider walls work in my situation. Thanks!


text:
Cycles drops objects?
This is a screenshot from the blender viewport (2.93, Cycles). On the right is a movie screen illuminated by a spotlight. It's showing a movie.
Note the hideous sconces on the wall on the left, illuminating a procedural wallpaper and the image textured floor. Very lovely. Much artistry.

Now look at what Cycles does when I render that frame.
It draws the movie screen, briefly considers drawing the striped wall and sconces, then changes its mind and only draws the movie screen. This happens even on frames where the movie screen is out of sight. It happens if I put the camera directly on the striped wall. Can't be a distance thing, since the wall is closer to the camera than the screen.
Forgive the size of the render screen - my GPU is old and feeble and I'm using this size for render previews.

So what's going on?
The brightness of the area lights in the scones is currently waaaayyyy higher than I actually want, because I wanted to see if Cycles was ignoring them because they were too dim (nope). The procedural texture is an experiment, too. I wanted an image texture there, too. But that gave the same result.
I've tried tweaking every setting that looked promising, but nothing changed.
How do I get Cycles to show these stupid walls?
The project is pretty large (mostly thanks to the movie that gets shown on the screen - the only reason I'm bothering with Cycles, btw), so I can't attach it.
--
Adding outliner for walls, by request:

Can you show a screenshot of your outliner window with everything expanded and the column for render visible?  I suspect that you have deselected the items.

It looks like the whole scene is rendered but then the compositor removes the background and objects on the left.

Added screen shot of Walls in outliner. Everything looks visible, to me.

i think the blend file would help here a lot - so we don't have to guess around....

Blunder put me on the right track - the compositor... It looks like the walls somehow ended up in a separate layer? No idea how that happened.

Issue was: the walls were in a separate non-rendering layer. Not exactly sure how that happened. But, once I turned on rendering for that layer they started showing up. Then, when I just deleted that layer (because I don't need it), rendering got faster.


text:
Displacement is not working!
Why my displavement is not working?
Even if you adjust the height or level, only the size of the object decreases.

https://pasteall.org/blend/00821a11fb1a4a27bd83dfc818a3ab6b

Comments are not for extended discussion; this conversation has been moved to chat.

Your both files works for me (if I plug any black&white image into "Height" socket of Displacement node).
Just to be sure ... effect can be seen only in Render view mode only.
So ... your file seems to be set right ... If your issue persist try to render only by CPU (in case it is GPU issue).


text:
Why my noise texture is not same guru
[]

Is there something wrong? It's like a durian
https://pasteall.org/blend/53c0e115f7a64017883dc2069a8931ec

The reason is pretty simple, your roughness in Noise Texture is set to 0, this way your donut is basically reflecting light and it looks really weird, set it to default 0.5 or even higher (the guy in the tutorial probably used an older version of Blender that didn't have roughness in Noise Texture

Btw, not sure if he says it, but you should add a aMapping node between Noise and texture coordinate

Thanks MikoCG! I solved the problem.


text:
Python Addon to "set active Camera" in different viewport window
Let's say I have two 3D Viewports opened in Blender.
I have an Add-on that shows an operator in the sidebar menu. Now if I press the operator I want another viewport window to go into Camera view using python (not the one where I pressed the operator).
I guess that can be done by moving the cursor into the other window, but I was wondering if there is a less "wonky" way?
Edit:
I wrote a basic Addon, that includes @Crantisz approach (which makes total sense to me) but it doesn't work as intended. It toggles the camera view in the viewport where the operator is pressed, not the other ones.
When I use this approach within the python console it works though.
To reproduce:
Open blender with two Viewports and click the operator.
    bl_info = {
    "name" : "Toggle View",
    "author" : "Timmethy",
    "description" : "Toggel Camera View in different Viewport",
    "blender" : (3, 0, 0),
    "version" : (0, 0, 1),
    "location" : "",
    "warning" : "",
    "category" : "3D View"
}
import bpy

def camview(context):
    for a in context.screen.areas:
        if a != context.area and a.type == 'VIEW_3D':
            targetarea = a
    override = {'area': targetarea}
    bpy.ops.view3d.view_camera(override)

class SWITCHCAM_OT_operator(bpy.types.Operator):
    bl_label = "Switch Camera"
    bl_idname = "wm.cam"

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

    def execute(self, context):

        if bpy.data.objects['Camera']:
            bpy.ops.object.select_all(action='DESELECT')
            bpy.context.view_layer.objects.active = bpy.data.objects['Camera']
            bpy.data.objects['Camera'].select_set(True)

        camview(context)

        return {'FINISHED'}

class SWITCHCAM_PT_panel(bpy.types.Panel):
    bl_label = "Toggle Camera"
    bl_idname = "SWITCHCAM_PT_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = 'UI'
    bl_category = "Toggle Camera"
    bl_context = "objectmode"

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

        layout.operator("wm.cam")

classes = [SWITCHCAM_PT_panel, SWITCHCAM_OT_operator]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

It can be done by override context in function. Since the only important data for setting viewport is area you should pass only area into context.
def main(context):
    # I don't know how you want to select different area
    # let's say it is any view 3D but not current one
    for a in context.screen.areas:
        if a != context.area and a.type == 'VIEW_3D':
            targetarea = a
    override = {'area': targetarea}
    bpy.ops.view3d.view_camera(override)

Well... I don't know why it doesn't work. Do this without ops:
for a in context.screen.areas:
    if (a != context.area) and (a.type == 'VIEW_3D'):
        for space in a.spaces:
            if space.type == "VIEW_3D":
                break
space.region_3d.view_perspective = 'CAMERA'

The parameter override get's ignored when the function is run with an operator. It works when run as a script or directly in the console.

If you pass wrong area, for example text editor it will raise the error

Well but it can't since you checked with a.type =='VIEW_3D', right?
Anyhow, your second aproach works, thank you very much!


text:
how to prevent blenderGIS from changing coordinates?
When searching for coordinates in BlenderGIS and then exporting the map, the coordinates get rounded to 3 significant digits, and get somehow transformed, thus the origin is not at the exact coordinates given. Is there a way to prevent this?
Example entered coordinates:
50.987654321, 50.987654321
Location on google maps:

Origin Coordinates (Custom property of BlenderGIS):

As you can see they are not rounded correctly as it would result in 50.988.
Location of Origin:

As you can see from the two map screenshots, there is a couple of (hundred) meters offset.
Depending on the coordinates this offset can be larger (more then 1 km) or zero.
EDIT:
While doing more research, I was looking through the code of the addon and looked for how the lonlat coordinates get handled.
When searching for coordinates this function gets called:
results = nominatimQuery(self.query, referer='bgis', user_agent=USER_AGENT)

and in the code of nominatimQuery:
def nominatimQuery(
    query,
    base_url = 'https://nominatim.openstreetmap.org/',
    referer = None,
    user_agent = None,
    format = 'json',
    limit = 10):

    url = base_url + 'search?'
    url += 'format=' + format
    url += '&q=' + quote_plus(query)
    url += '&limit=' + str(limit)

    log.debug('Nominatim search request : {}'.format(url))

    req = Request(url)
    if referer:
        req.add_header('Referer', referer)
    if user_agent:
        req.add_header('User-Agent', user_agent)

    response = urlopen(req, timeout=TIMEOUT)

    r = json.loads(response.read().decode('utf-8'))

    return r

A search request is started at:

https://nominatim.openstreetmap.org/
Now if I go to that website and search my test coordinates I end up with this location again:

This to me indicates that the issues lies with openstreetmaps and not with blender/ the addon itself.
When the function is called with the above coordinates this is returned:
[{'place_id': 170014993, 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright', 'osm_type': 'way', 'osm_id': 282100956, 'boundingbox': ['50.934648', '51.1017181', '50.8883715', '51.139555'], 'lat': '50.9783397', 'lon': '50.9934993', 'display_name': 'КL-10, Зеленовский район, Западно-Казахстанская область, Қазақстан', 'class': 'highway', 'type': 'tertiary', 'importance': 0.001}]
Is there a way to directly enter coordinates with BlenderGIS without using the query?
When changing the custom properties nothing happens.

i am really curious about this and i am afraid that this "isn't" solvable without changing Blender code itself because i think it has to do with the floating point problem which every programming language has because it has to "cut" somehow the numbers to save them in a low memory consumption way.

I only have a basic understanding of Python but I thought so as well. I did some research and came across the numpy.foat128. Maybe it is possible to change the add-ons code to use this data type instead of just float.

Blender itself doesn’t use „Hires“ numbers either so i think just changing the add-on won’t help

The solution some softwares use with very big yet very precise coordinates is to store them as strings, then parse it to an int / float at runtime and store it back as a string when needed

Since the error in the coordinates is based on the request on OSM that (I guess) searches the nearest location to the given coordinates, I rewrote some parts of the map search class, to skip the query and just use given coordinates. Now the coordinates are correct but of course the query doesn't work anymore (which is fine for my use-case):
class VIEW3D_OT_map_search(bpy.types.Operator):

    bl_idname = "view3d.map_search"
    bl_description = 'Search for a place and move scene origin to it'
    bl_label = "Map search"
    bl_options = {'INTERNAL'}

    query: StringProperty(name="Go to")

    def invoke(self, context, event):
        geoscn = GeoScene(context.scene)
        if geoscn.isBroken:
            self.report({'ERROR'}, "Scene georef is broken")
            return {'CANCELLED'}
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        geoscn = GeoScene(context.scene)
        prefs = context.preferences.addons[PKG].preferences
        try:

#results directly taken from query without request on OSM

            results = self.query.partition(",") #nominatimQuery(self.query, referer='bgis', user_agent=USER_AGENT)
        except Exception as e:
            log.error('Failed Nominatim query', exc_info=True)
            return {'CANCELLED'}
        if len(results) == 0:
            return {'CANCELLED'}
        else:
            #log.debug('Nominatim search results :{}'.format([r['display_name'] for r in results]))
            #result = results[0]
            lat, lon = float(results[0]), float(results[2])
            if geoscn.isGeoref:
                geoscn.updOriginGeo(lon, lat, updObjLoc=prefs.lockObj)
            else:
                geoscn.setOriginGeo(lon, lat)
        return {'FINISHED'}


text:
Create object with different colors
I'm making a jar of jelly beans and I want each jellybean to have a material with a unique color so I can drop them in the jar using a rigid body.
So far I've managed to get this to produce a bunch of new blank materials.
I figured I'd start with all the red ones. I'm a bit new to Blender/Python.

x = 0

for x in range(255):

    # create material, assign
    activeObject = bpy.context.active_object #Set active object to variable
    mat = bpy.data.materials.new(name="Material") #set new material to variable
    bpy.context.object.active_material.diffuse_color = (x, 0, 0, 0) #change color
    activeObject.data.materials.append(mat) #add the material to the object

    x = x+1/255

Right now I'm just trying to create the different colored materials, and all the meshes for the jellybeans are the same.

Hello! So you'd like to create a bunch of objects and every object should have their own differently colored material? Or do you want to add a bunch of differently colored materials to a single object ?

Ideally, I would create a bunch of objects and every object would have its own different colored material. Thanks for the reply @Gorgious

*** UPDATE II ****
import bpy
import random

def createRandomMat(object):

    newMat = bpy.data.materials.new(name = 'Material')
    object.data.materials.append(newMat)

    newMat.use_nodes = True

    nodes = newMat.node_tree.nodes

    material_output = nodes.get("Material Output")

    node_emission = nodes.new(type='ShaderNodeBsdfDiffuse')

    node_emission.inputs[0].default_value = (random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1),1)

    links = newMat.node_tree.links

    newLink = links.new(node_emission.outputs[0], material_output.inputs[0])

for x in range(10):
    for y in range(10):
        location = (x*4, y*4, 0)
        bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location = location, scale = (1, 1, 1))

        object = bpy.context.active_object

        createRandomMat(object)

result:

**** UPDATE *****
you can create a random material with this function:
def createRandomMat(object):

    newMat = bpy.data.materials.new(name = 'Material')
    object.data.materials.append(newMat)

    newMat.use_nodes = True

    nodes = newMat.node_tree.nodes

    material_output = nodes.get("Material Output")

    node_emission = nodes.new(type='ShaderNodeBsdfDiffuse')

    node_emission.inputs[0].default_value = (random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1),1)

    links = newMat.node_tree.links

    newLink = links.new(node_emission.outputs[0], material_output.inputs[0])

*** Classic solution ***
This very easy node setup gives you "random" colors, which you can even "self-define" by the colorramp.

or other alternative:

Hey @chris, thanks for the reply. Would each of these cubes be their own mesh/object with their own material? Or is there a way to separate them into objects and materials?

Cubes have own mesh object, but material would be the same. Why do you want extra materials? Do you want to animate the materials differently? Or why?

I know it sounds odd but I'm going to make the jar of jelly beans but also export each jelly bean as a singular model haha.

ah ok, i update my answer

Just a little remark. Another way could be defining a set of materials (each with its color) then choose between them for each object. This avoids the creation of one material per objet. But in the context, maybe that does not matter. So +1.

@lemon: how do i create a set of materials?

just by bpy.data.materials.new and store that in an array in which you randomly pick. But again, I don't think that matters so much here

Ideally, what I'm looking to do is create X amount of copies of the active object each with its own random colored material with a for or while loop like my original code.
Its fine if its a lot of objects and a lot of materials because I'm going to batch export the models so I can use them in a jelly bean collecting game.

@MrP, will they be sugar free?

Hahaha well played.

@Chris, reading again the question, one material (one color) per object, so you're good. Eventually, MrP needs object duplication (?)... is that right MrP?

Yes, duplication + assign new random color material.
Sorry I'm new to stack exchange and also new to blender py

i updated my answer

Thank you Chris, now to go through it and see how far off I was haha.
Something tells me I was fairly far off. But thank you so much for the help

you are welcome. If my answer helped you, please check the checkmark left to my answer. Thanks.

@MrP, don't forget to upvote and accept this answer. Thanks.

Thats amazing. I accepted the answer. Thank you all again!


text:
Print Material Color of Active Object
I feel like I'm close on this one. I am trying to print the material color of the active object.
Currently it is printing a value, but when I select a new active object, it prints the same value.
I'm sure its a really simple thing that I'm missing but I also can't seem to find the correct method.
import bpy
obj = bpy.context.view_layer.objects.active
material = obj.active_material
color = material.diffuse_color
print(color[0], color[1], color[2], color[3])

What I am attempting to do is for each active object, report back the HSV value of the material attached to it. Ultimately I am trying to batch export each file with the file name containing the hex color of the object.
Getting the HSV values is just the first step.

The method for obtaining the diffuse color varies depending on what render engine you are using.  For EEVEE and Cycles, diffuse_color isn't used and you need to find the color input of the shader node.  For example, if you have the very simple setup of a Principled BSDF feeding the Material Output Surface Input, you need to find the Base Color input of the Principled Node.  Here's a very simple material:

and here's a simple example replacing your last two lines but changing your last two
obj = bpy.context.view_layer.objects.active
material = obj.active_material
inputs = material.node_tree.nodes["Principled BSDF"].inputs
color = inputs["Base Color"].default_value
print(color[0], color[1], color[2], color[3])

Note that this only works in the simple case where

There is only one shader node
Its node name is Principled BSDF
It has no node connected to its Base Color input.

But  the idea of a single diffuse color doesn't really apply except when you're using the workbench render engine, because even the Principled BSDF in this simple example will modify the color depending on the shape of the object its applied to, b applying the Fresnel Effect
If any of this changes, you need to change the code to match.  Since you mentioned you were using a diffuse BSDF in your comments, here's the code for that
obj = bpy.context.view_layer.objects.active
material = obj.active_material
inputs = material.node_tree.nodes["Diffuse BSDF"].inputs
color = inputs["Color"].default_value
print(color[0], color[1], color[2], color[3])

I am using eevee and diffuse color. Ultimately I am exporting these objects to gltf.
What I'm aiming to do is export each object with the color of the object as the save file (hex).
Each object has a mesh and its own basic material w/ diffuse color and no nodes.

By 'diffuse color' do you mean you're using a Diffuse BSDF shader with no node connected to its Color input?

All I got is:  Diffuse BSDF > Base Color on principled BSDF, BSDF > Surface

@MrP delete the principled and hook the Diffuse directly to the Surface, and use the code I just added to my example.

It looks like it works even with principled bsdf. gunna do some testing quickly and if its right I'll mark yours as the correct answer. Thanks for the help.

You're welcome.  Taking the principled out will just speed things up a bit, because its doing calculations for things like Fresnel effect, and you seem to want a pretty simple representation.

Yeah it definitely works. Thanks again and also for the further reading on the Fresnel Effect.

Let us continue this discussion in chat.

That's a common misunderstanding of the material system. Material.diffuse_color property is used for solid viewport shading (or renders created with the workbench engine) and does not affect the (final) rendering of all other engines, the main reason why you can find that property in the Viewport Display panel:

Due to the nature of node based materials (and almost endless possibilities of wiring things up), it's not that easy to get the diffuse/albedo color of a material as you might think.
If you're using e.g. just one Principled BSDF, you would have to get the material of the object, find the principled node in the node tree and read its 'Base Color' input property:
import bpy

# Get the object reference
obj = bpy.context.object

# Get the material via active slot
mat = obj.active_material
# or: bpy.data.materials.get("MaterialName")

if hasattr(mat, 'node_tree'):
    # Get the principled bsdf
    prince = mat.node_tree.nodes.get('Principled BSDF')
    if prince:
        # Get the base color of the principled bsdf
        r, g, b, a = prince.inputs['Base Color'].default_value
        print(r, g, b, a)

Result
0.01615985296666622 0.04138465225696564 0.8000000715255737 1.0

Further reading

Control Cycles/Eevee material nodes and material properties using python?
Principled BSDF via Python API

HSV, sRGB and Hex triplet
In case you'd like to get the HSV color and the Hex triplet as well, you'd have to implement the actual conversion using python since there is no API function to get them:

import bpy
import colorsys
import math

def lin_to_srgb(c):
    if c < 0.0031308:
        srgb = 0.0 if c < 0.0 else c * 12.92
    else:
        srgb = 1.055 * math.pow(c, 1.0 / 2.4) - 0.055
    return max(min(int(srgb * 255 + 0.5), 255), 0)

def hextriplet(c):
    return '#' + ''.join(f'{i:02X}' for i in c)

# Get the object reference
obj = bpy.context.object

# Get the material via active slot
mat = obj.active_material
# or: bpy.data.materials.get("MaterialName")

if hasattr(mat, 'node_tree'):
    # Get the principled bsdf
    prince = mat.node_tree.nodes.get('Principled BSDF')
    if prince:
        # Get the base color of the principled bsdf
        r, g, b, a = prince.inputs['Base Color'].default_value
        # Convert rgb to hsv
        h, s, v = colorsys.rgb_to_hsv(r, g, b)
        # Convert to sRGB
        srgb = [lin_to_srgb(c) for c in (r, g, b)]

        # Print the values
        print("RGBA:", r, g, b, a)
        print("HSV:", h, s, v)
        print("sRGB:", ", ".join(map(str, srgb)))
        print("Hex:", hextriplet(srgb))

Result
RGBA: 0.04373500123620033 0.09530799835920334 0.7991030216217041 1.0
HSV: 0.655287445825263 0.9452698837911484 0.7991030216217041
sRGB: 59, 87, 231
Hex: #3B57E7

ultimately what I'm trying to do is access the color of each object, then convert it to hex and export the file with the name of the color associated with it using the batch export template.
Each object is very simple. One object, one material, one hsv color.
It is a diffuse color.

@MrP Added how to get the hsv color as requested in the edit of your question. Unrelated IMHO, just FYI: If you'd like to export to gltf, you should use a principled bsdf according to the manual: https://docs.blender.org/manual/en/2.80/addons/io_scene_gltf2.html

Its funny actually, I just got to near the end of my project and I have a bunch of GLBs with no color data because its not principled. I think I discovered that as soon as you posted the message too.
The other issue Im having now is that when I round the RGB values to format as hex, its not exactly accurate.
Although that may have to be part of a new question. Sorry for posting HSV, my end goal is to have it in hex format.

Sorry Brock, I thought I would be able to mark both of your answers correct because they both are technically correct. When I marked yours I had the other fellow complaining and based on the limitations of the platform, sadly I cant mark both correct :(

Ez, your decision @MrP


text:
Mesh is white when exporting to FBX . Cannot get original textures)
So my model is mostly white wehn exporting to fbx.
I did manage to texture bake them but the result is not the same:
Top white is fbx, below is desired original look.

Hello ! Short answer is you can't export procedural textures. You mentioned you had trouble baking the textures. Where exactly did it fail ?

The baked textures where not the same quality , there was no reflective goggles and no shiny eyes etc.

Did you bake several maps, one for color, one for metalness, one for roughness, etc. ?

no. Just one diffuse per texture.

I am really a noob at texture baking...Any chance I can send you the model and you do a proper texture bake, if that works.

I dont mind paying paypal

Nope sorry but there are plenty of material about baking out there. Try the keywords : "Blender bake pbr" (for physically based rendering), for instance the first result : https://www.youtube.com/watch?v=mdcodiuIwXM

i have been following it but dont know which bake type to use , i done one diffuse which gave some color but roughness bake did not???


text:
Apply animation length change
I have changed the animation length of a clip (as in the picture below), by changing the start and end time..
When I export the model and use it somewhere, it still seems to be using the original animation length.
Do I need to 'apply' the animation length change somehow (like with applying 'Scale') in order to get it working?
Thanks

Update based on comments:
I am seeing this (where 50-77 is the frame length I want for the object, not just the scene):

If you are exporting images (jpg, png) instead of a movie, make sure that you've removed the images that go beyond the new length, otherwise they will still be in the folder, maybe it's your probelm here?

not sure how to check that, when I click on an animation or image option in the selector on the right, I can't see anything which would suggest images going beyond the length

did you choose images or video? If you chose images, go into the folder and remove the additional images

I'm not sure where you mean, in my 'Outliner', I see 'Scene Collection' with 'fire_part_00' 'fire_part__01' etc (the example is an animated campfire). Under each 'fire_part', there is an 'Animation' and 'Mesh'. I have updated the question with a photo.

do you render your animation as a video or as a series of images? please show the Output panel, or share your file

I've been exporting it as a gltf for importing into a React site

The adjustments you are making are the frame range for the scene, not the object itself. The moment you import the object into a new scene, it will use the new scene Frame Range settings in the Output Properties box.

I'm not sure I understand how to do that, do you mean just exporting it (e.g. as gltf) and then reimporting it into a 'new' scene? (this didn't seem to work for me)


text:
particle systems - change direction of objects
I created an animation of a dress and added flying butterflies with the particle systems. Is there a way to change the direction of the flying butterflies?
Thank you for the help!
https://drive.google.com/drive/folders/1yC9jWIjqcIMtRPChT6jHtihgXYuQWbKJ?usp=sharing

how or in what direction should the butterflies fly? can you please maybe add a sketch or screenshot how it should look?

I have no idea what direction you want them to go, but because you already have a boids system, you can do e.g. this:

I added a goal + separate with these settings:

and i added an empty, which is a parent of suzanne and i keyframed the rotation of the empty and i got this result:

so with a "goal" you can direct the particles in a specific direction.

Uuuu nice thank you, I will try it out! The only thing is that they look like they are flying with their back first instead of flying with the head first... I hope the explanation makes sense :D

you can easily solve that but selecting your butterfly, TAB -> edit mode, R Z 180, then it works. If my answer helped you please click on the checkmark left of my answer. thank you.

ou ok great thank you, I will try !

you are welcome


text:
How to achieve Workbench studio light in EEVEE and Cycles
In Workbench studio light. The light and shadow is at the same corner whatever we rotate the object.
I guess I need to use a texture and emission instead of adding a light.
Any help would be much appreciated.

I think I found the answer. Render a ball as a MatCap using Workbench. Use the MatCap in EEVEE and Cycles.
*It works but it might be slightly brighter than workbench. Because workbench also use material color or single color. The default of them is 0.8 brightness white, not 1.
(Render MatCap using Workbench)
(Result Check via Monkey Head)

!!! I forgot to add an emission node before connecting to material output:(


text:
How could I create realistic structure simulations in blender?
I have this projects in which i need to build a structure that has 2 levels(each level being 1 floor). Each level must hold a golf ball while the structure is shaken. My materials are straws, tape, and a string.
What I want to do is to use Blender since I do not have the materials with me to simulate a structure.
How could I simulate the brittleness of plastic, and the shaking of the plate in which the structure would be upon?
How could I simulate areas where the stiffness is stronger (like where the straws are taped or put in each other)? What about the flexible corners of a straw?


text:
Move all objects in a collection with a proximity node in geometry nodes
Is there a way to use geometry node to move all objects in a collection and move all single objects with another geometry with proximity node?
I'm stuck in try to get the single object from collection info node.
I know that I can do it with animation node, but I'd like to know if there is a way with geometry node also.

i don't think you can do that with GN. But should be possible via python.

The problem is that GN does not manipulate object data. So use Animation nodes.

Yes, that should work by wrapping everything in a single node tree. Would that be an option for you?

Could you please show us your plan with a more detailed example? Screenshot, or the actual node tree, so we have a clue what exactly your goal is? Thank you!

@LuigiSorbilli I think instead you could make one Geometry Nodes object that uses the collection Info node to create instances of all objects in a given collection.


text:
Shifting the noise to one end of an object using nodes?
I am still fairly new to Blender. Although I came from Lightwave there are still plenty of things I am figuring out.
This one seems like it should be pretty easy but I am not sure where to even start looking for my solution.
I am making a paint brush and I want the tip to be darker than the section near the metal ring holding the brush to the handle. I have used a color ramp to get my colors and a noise texture to spread the colors around. The texture coord node and mapping node let me stretch the colors along the brush to make streaks instead of splotches.
What I can't figure out is how do I get the dark color to appear near the tip more often and the light color to appear near the metal ring more often still giving a variety of colors but concentrated to the ends.
Any suggestions on what to try to do this?
What I have now...

What I am trying to do...

Here is sort of what I am after. Not exact but gives the concept. See how the brush still has strands but the darker area is focused near the tip? I just want to weight the randomness to lean darker to the tip and lighter to the base.

THANK YOU FOR YOUR ADVICE!

UPDATE! Although the answer from Onyx wasn't quite enough, it set me on the path I needed to get mostly to where I wanted to be. I still have some tweaking but I have the basic concept now.
In short, I took two color ramp nodes and mixed them together. One had the noise I wanted and the other used the texture coord and mapping nodes to get the rotation. The two ramps are similar in color but not the same. There is a third color ramp off screen but it is only used for the bump map for the brush fibers and not relative to this rotating of the color mappings I was after.

Thanks for helping me on my way!

Try adding a Gradient Texture (Shift-A > Texture). You may need to play with the mapping to rotate the gradient and/or use another colour ramp node to refine it, but you can basically use the output of this to influence your colours.
ETA: If you have the Node Wrangler add-on enabled (it's shipped with Blender), you can ctrl-shift-click a node to see just its effect on the object. I'd use this while refining and mapping your gradient texture to make sure it's set up correctly.

The gradient texture doesn't really seem very useful. It is the same as a color ramp but with no flexibility. I managed to get it applied but it was not even close to working correctly and only offered a solid shading. Maybe I am not understanding what you are suggesting.

Basically, I have the "brush" feel that I am after but I need to add something that pushes the darker tones to the tip and the lighter tones to the base while leaving the strands feeling in place. I tried an RGB mix node but that just made things muddy.

I just added a picture to the bottom of my original message giving a better example of what I am after.

Thanks for getting me going in the right direction. I updated my question to show the final product. Not perfectly what I am after but very close and now I have the concept.


text:
Liquid seems to evaporate by the end of a fluid simulation
I am very new to fluid simulations. I have watched several YouTube videos and I understand the basics. But for some reason, my fluid seems to evaporate as time passes in my animation.
In frames 1-40 I am filling a tank and that seems to work just find. No liquid is leaking out of the container. That did happen at first but I figured it out and got things working great. There is plenty of liquid in my tank at frame 40 so I turn off the inflow.

But as the animation goes on, the liquid just vanishes.

I can't seem to spot any setting that tells the simulation to not evaporate the liquid, probably because it isn't named something I would recognize. So I am hoping this is a simple newbie mistake that someone can quickly point out to me.
Here is a link to the blend file: fluid-tank.blend

It looks like the simulation is leaking fluid: a limitation of the simulator. There’s a ratio somewhere in the domain properties, I think it’s called the FLIP ratio, that can help with that.

I tried your suggestion. I was going with APIC for the simulation method because it looked smoother. So I switched to FLIP and ran experiments from 1.0 (way too spashy) down to 0.5 at 0.1 for each step I tested. The lower numbers looked nicer but no matter what, the fluid vanishes. It is as if the engine only allows the particles to live a set amount of time. I don't see any leaking. At least not that I can detect. I have switched back to APIC since it looks a lot better.

please provide blend file

I added a link to the blender file. I am not sure how to directly upload and attach it to this message. PS: In my tinkering, I let the fluid fill up to frame 80 rather than 40.

I have still not figured out why the liquid evaporates. I have the particles lasting longer than the animation and nothing seems to be spilling out. But still, the animation slowly looses liquid. It seems very odd. I will start a new animation from scratch and see if is something off with my container. Although, if I don't slosh the liquid back and forth it doesn't appear to evaporate (leave the tank still). It may be related to shaking the tank.


text:
How to get focused wind in a simulation? Like a fan or leaf blower
I have seen several tutorials on using wind and cloth. Very cool and very educational. But one thing that I can't make sense of. Wind doesn't appear to be possible to focus a stream of wind like what you would get out of a fan or leaf blower.
For example, in these two images, you can see that I am using a wind source with a tube falloff. But the tube means nothing. Even when the cloth is nowhere near the tube, it acts exactly like it does when it is right in front of the tube.
Pointing at the cloth

Pointing away from the cloth

The cloth is flowing in the correct direction based on the wind in both images, but how can I make the wind a stream or jet of air rather than acting like a plane the entire time?
I have tried using a point and a cone and those don't work either. I have tried changing the shape of the wind force itself using a point, line and plane and I cannot see the difference on the output.
The wind seems like it is acting more as a global wind direction rather than the null wind object being the source of the wind.
Any suggestions to help me understand how wind should work and how to make a specific object the source of the wind would be fantastic.

james_1 gave the answer I needed below but I wanted to show the updated settings. I had the Radial set to ZERO which appears to me infinity. This number seems a little confusing because the higher the number the lower the radius of the wind tube. For my example, I found that 8 worked the way I was expecting. Here are the updated images.

Hope this comes up on search engines and helps others looking for the same info.

You would need to include a screenshot of your falloff settings. Radial Power should not be zero.   Here is an example using Rigid Body physics with a tube-style wind with non-zero Radial falloff.

This example:


text:
Geometry nodes - Manipulating a specific vertex group
I am trying to move points on a plane in a sine wave pattern but only a specific vertex group. I have no clue where to even start in the geometry nodes panel.
So far I have created my plane and assigned the selected points to a vertex group. Let's call the group my_points for this example.

Now that I have the plane and vertex group, how do I apply a sine wave to those points in geometry nodes? Ultimately I want to do more such as tie the phase of the wave to the frame number, but for now, I just need a nudge in the right direction to get started by getting those points into play in the nodes editor.
THANKS!

UPDATING MY QUESTION
I tried the nodes from the first answer. I don't get anything even similar. Can you spot what I have done wrong?

Here are the results I end up with...

You can use trigonometry with Math nodes. To get access to the vertex group, simply add a new input, connect it to the selection input of a Set Position node.
Go into the modifiers tab, click on the Input Attribute Toggle () and choose your vertex group in the field.

Here's the setup :

I must be doing something wrong. I think I replicated your exact set of nodes and I don't get anything even close to your results. I am using Blender 3.1. I will add screenshots to my original post. Maybe you can spot what I have done wrong.

you need a sine node -not a sign one- to do the wave thing... same math node but a different function

OMG! What a bone headed mistake... I looked and looked and simply didn't realize I picked the wrong node type. THANK YOU!


text:
How to render soft edge with hair in cycles?

as you can see the hair edge is so sharp,not smooth enouht(even able count the pixel),i want it to be smooth.
the black hair is the hair,the white hair is curve bevel,i made this pair to compared,to research is this sharp edge only happend in hair system?the answer is no,it seem to while you have modle so thin,then it will render it so sharp.
hair setting:

here is the same model i render in arnold,and that is the smooth edg i want,i want this effect in cycles,how am i gonna set the cycles or the hair material(i'm using the hair BSDF,default setting,didn't change anything)?

can you show us your hair settings? Especially part Render > Path > Steps... what is value for option Steps?

if you mean PARTICLE PROPERTIES>RENDER>PATH>B-SPLINE（√i check it）,i set the steps value is 10(value 5 is the same look in final render);
also in RENDER PROPERTIES>HAIR>SHAPE,i chose 3d curves(actually it look the same in final render with rounded ribbons,curve subdivisions value 5).
i don't know that did i mention the value you said about?but i want to point out that sharp edge doesn't only show up in hair render, it also show up in when you render some thin and long(like hair) curve or mesh,in low resolution,you can even see it's disconnect.


text:
How to customize the shape of spiral node in geometry node?
The spiral curve node in geometry node is the shape of circle by default, how can I change the shape of the spiral by using my curve outline?
Like this picture below, it's using rectangle outline.

curve.blend

Here's another take on it:

This GN modifier takes any provided 2D curve, and converts it to a parametric spring. (The curve can be closed, but must not be filled.. that changes it to a mesh, which doesn't work, here)

It cracks the curve open. (We only need the points, it doesn't need to be cyclic).
It generates a straight-line curve, with incoming * turns points.
Position is transferred to the line from the incoming template, by Index mod(number of points in template) resulting in the line winding round and round the template, in the flat.
Finally, the points of the wound line are offset in Z by a provided multiple of their Spline Parameter.

You could generate the spring-shape inside the group, instead, or replace the circular wire-profile with some other curve cross-section, if you wanted.
Here's the Blend (Blender 3.1b, but could work in 3.0, by replacing the DomainSize node with an Attribute Statistic node, to make the point-count.. as here )

WOW!!!It's really solved my problem, please let me call you The Spring Master, thank you again!

man, that's fabulous! and i love that it works for all curves!

@Chris Thanks! But.. doooh.. I just realized I could get rid of quite a few nodes by deforming a ready-made spiral, the way ben suggested, instead of starting from a line. Never mind.. leave it. :)

Sorry, but my mathematics isn't the best so i have this dirty solution which works - but i am sure Robin can make it better ;)
What a basically do is making a rounded rectangle shape, turn that into a curve and give that curve enough count and with that count i just stretch the points on z. "Normally" with a clean mathematics you could calculate all these points.
So here is my node setup:

and this is my result:

Thank you very much! I would like to ask an additional question, because I already have a closed section of the curve, how should I correctly replace the first half of your nodes, I can't try it out right now. I have uploaded the curve segment file.

Phew! That's quite a sweat! What's your version? Have I 'cheated' by using a later one?

No, I am always using the latest alpha

You can fillet a curve-rectangle in 3.1+, to round its corners, but I have to say, i've found it a bit janky. I did cheat by outsourcing the shape :)

@RobinBetts Thank you for giving me an easier way!


text:
How to calculate definite integral in geometry node?
Is there any way to calculate the definite integral in the current version of the geometry node? Or a way to achieve similar results. If not, can this be achieved in python?
The function I want to implement is to generate a FM Signal which is
$\,\,\,A_c\cos\left( 2\pi f_c \,t\,+\int_0^t{m(\tau)d\tau} \right)$ .
At present, I can only set $\,\,m(t)\,\,$ to $\,\,cos(2\pi f_mt)\,\,$, because its integral can be directly replaced by $\,\,sin(2\pi f_mt)\,\,$ instead of integral operation. The figure below is the result.

What I want to achieve is to perform FM modulation on the waveform in the figure below. The two figures are the geo nodes of wave and the its output shape.

Could you explain a bit more what you want to do?

In general, no.  Unless you can provide a closed form equation as a solution for the indefinite integral, you would need a numerical method to approximate the solution.

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

I want to generate a FM signal which need to integrate the signal. This is its expression: https://reurl.cc/ox3ONv

If the baseband is defined by a curve (or mesh) data, this is probably possible with some dt approximation.

Yes, I use "Curve Line Node" & "Resample Node" to create a baseband signal. But I have no idea about how to use vertex data to approximate the integral.

The issue may be the progressive accumulation of the values using GN. Python should do instead.

after few tests, I'm quite sure a cumulative sum is not possible using geometry nodes. You'll need either Python script or Animation Nodes instead. What's next? please provide an example for 'm' function. And also the final result you're expecting.

@lemon Hello, I have updated the question, please check it again. Thank you!

Ben, hello. I'm quite sure one can not create a cumulative sum using geometry nodes. You'll have a least to preprocess the curve to calculate that. So use Python or if you want nodes, install Animation Nodes addon.


text:
Thinking Texture Coordinate
I made double circle at center of red square like a picture below and added Noise Texture Node with Scale Node.
After this,Double circle with noise came (-0.5,-0.5).
I would understand if it came positive coordinate but it came negative.
Why it did not came positive but negative?

You are using object coordinates.  They range from 0 to 1  in each dimension, so the center of a square would be at (.5, .5).  The equation of a circle is set to use the origin as its center, so you have to offset it by (.5, .5) to center it at the center of the square.

So the center of a square moved (0,0) to (0.5,0.5) after adding noise tex and it just looked like double circle came to (-0.5,-0.5) due to this?

The noise texture is perturbing the circle by adding random values in the range of 0 to 1, with an average of .5, yes.

I got it! Thank you for answering and taking your time.


text:
Trouble with array and curve modifiers for making a bandolier - Blender
First ever question, I'm also not amazing at blender and trying to learn.
I want to make a bandolier for the sake of learning a more complex array modifier (and curves) but I am having trouble getting the bullets to rotate along the curve or to get the curve lines to face the way I want.
I've tried looking up videos that suggest shrinkwrapping the curve to the object (as well as using triangles parented to the bullets that are also shrinkwrapped) but nothing seems to work so far.
If anyone can help me out of this I'd appreciate it greatly!

[

can u provide blend file?

This may help you : selecting a vertex in a curve and then pressing CTRL+T will allow you to tilt the vertex's normal to a direction you want. Try it and you'll see.

Mqbaka solved it, thanks a lot!