Small GUI Proposal for a new Randomization Modifier.

I’ve been thinking about a randomization modifier for a while. The basic idea behind this modifier would be to randomize the location, rotation, and scale of any loose parts within a mesh. In theory this could then be used with the array modifier as well to create randomness in arrayed objects (something I miss from cinema4d).

I’m calling the modifier “Randomize Parts”.
Below is a gui I made to get a clear idea of how it would work, as well as an explanation of the interface.

http://auralgrey.com/storage/blender/randomize_parts.png

Seed: This allows the user to change the random seed number used to generate the randomness when the modifier executes.

Location Fields: The user can set the maximum amount of random transformation for the objects location using these fields.

Rotation Fields: The user can set the maximum amount of random transformation for the objects rotation using these fields.

Scale Fields: The user can set the maximum amount of random transformation for the objects scale using these fields.

Link Fields: These check boxes give the user the ability to keep the fields above them in sync. So if say the user changes the x value then the y and z will automatically update to that same number. (couldn’t find examples of this already being done in blender, but let me know if there are for consistency sake)

Object Offset: This can use the transformations of an object instead of the number fields.

Vertex Group: This might be unnecessary or unworkable, but I thought it would be interesting if you could have the randomization only effects vertices within this group.

Convert: This drop down is to select whether the transformations take place in global space or the objects local space.

Now unfortunately I really have no C experience, and modifiers don’t appear to be a great way to dive in :). I’m going to attempt to first write a py script that creates some of this functionality then perhaps I could try to port it.

Of course if there are any enterprising coders out there just looking for a project like this to complete that would be the best case scenario (I won’t hold my breath though). I’m sure I could provide any artistic feedback.

Anyway let me know what you guys think. Am I missing anything? I’m trying not to bloat this up with too many features, but let me know if there is anything critical I missed.

This would be really a nice addition to Blender. Actually there’s a great script for 2.49 called Big Numbers Toolkit (http://glp.lescigales.org/it/blender/scripts/main_scripts.html) that does a great job about randomizing stuff. Maybe could be useful to take a look at it and try to merge the two things…

so in essance if your object is made out of 10 non-connected meshes, it will throw those around randomly ? (loc,rot,scl) ?

seems … like something that could be useful. I had something similar in mind for a PY script, to learn py scripting towards blenders API.

to generate planes with random vertices and apply velocity calculations , so you can make paint-like splashes that are made out of planes, w/ velocity and direction as meta variables. so you can animate it or use it to generate a splash like effect for still shots.

that’s a pain in the ass to do in raster applications, w/o the 3d depth of the splash. and you can find footage of it but it’s been used all over the net, would be nicer to be able to generate your own CGI shots.

maybe as an addition you can apply the modifier to a central object that can be kind of a pivot point and add a stack to the modifier where you add all object that need to be randomized maybe with axis constraint so if you move the central object the other object will follow and so…
that way it can be used with separate object …

This sounds very like SaltShaker http://saltshaker.sourceforge.net/
It would be very nice to have this as a modifier so that variations could be tried out before applying permanently.

You can do the same thing with the Graph Editor, just by adding a noise modifier in the channel you want and tweak the parameters.

i don’t know if you (SamCameron) are answering me or 0knowledge :confused: but i think me
if so

I’m a newbe so i haven’t used the graph editor before

but if what i know is true you will face the same problem
you will have to apply the same modifier to multiple channels and it will be harder to control i think…:spin:

I haven’t read the whole thread, but my intention was to reply to 0knowledge, anyway about your comment you can easy and quickly copy and paste modifiers in graph editor to other channels just by pressing one button. Also the modifiers in the graph editor is quite user friendly.

Is there an official place for 2.5 feature requests?

Just wondering, because I think we all have ideas on how to make it better.

Ok sorry about that :o

another question :smiley:

when u apply the same noise modifier to multiple channels for multiple object does the result of each object depend on the other objects
i mean the final location of the x object take into account the final location of the y object

maybe i want to constraint the location of every object so the final result would be a heap of object with every object touching the other :confused: :spin:

wow that’s a lot of objects :evilgrin:

0knowledge, your idea is really great! It will be awesome to have some additions to use with array modifier… like C4D. I think that build modifier could receive some influence from your new modifier… it will be very nice!!

@phoenixart - Thanks, I’ll have a look

@aermartin - Yes that is would it would do. Also, that sounds like a cool script hope you make it. Actually it points out a shortcoming with the current modifier system, no way to apply any of them to a group, which would be awesome.

@myway880 - thought about the separate object thing, I think it just doesn’t fit with the current systems, see the above group comment

@SamCameron - I love the graph modifiers, but unfortunately you can’t really get the results I’m after by using them.

@bergen - yes i’ve definitely used salt shaker, of course as you point out its not interactive and you have to apply the results which isn’t very useful for experimenting with designs.

@eversimo - thanks!

This is definitely an artistic request, artists like random accidents and discoveries. This is a nice idea, similar to jitter for brushes.