Thursday, October 1, 2009

Refreshed force fields

Yay! After a long silence I have something new for you guys again!

Unified effector functionality for particles, cloth and softbody
  • Unified scene wide gravity (currently in scene buttons) instead of each simulation having it's own gravity.
  • Weight parameters for all effectors and an effector group setting.
  • Every effector can use noise.
  • Most effectors have "shapes" point, plane, surface, every point.
    • "Point" is most like the old effectors and uses the effector location as the effector point.
    • "Plane" uses the closest point on effectors local xy-plane as the effector point.
    • "Surface" uses the closest point on an effector object's surface as the effector point.
    • "Every Point" uses every point in a mesh effector object as an effector point.
    • The falloff is calculated from this point, so for example with "surface" shape and "use only negative z axis" it's possible to apply force only "inside" the effector object.
  • Spherical effector is now renamed as "force" as it's no longer just spherical.
  • New effector parameter "flow", which makes the effector act as surrounding air velocity, so the resulting force is proportional to the velocity difference of the point and "air velocity". For example a wind field with flow=1.0 results in proper non-accelerating wind.
  • New effector fields "turbulence", which creates nice random flow paths, and "drag", which slows the points down.
  • Much improved vortex field.
  • Effectors can now effect particle rotation as well as location.
  • Use full, or only positive/negative z-axis to apply force (note. the z-axis is the surface normal in the case of effector shape "surface")
  • New "force field" submenu in add menu, which adds an empty with the chosen effector (curve object for corve guides).
  • Other dynamics should be quite easy to add to the effector system too if wanted.
  • "Unified" doesn't mean that force fields give the exact same results for particles, softbody & cloth, since their final effect depends on many external factors, like for example the surface area of the effected faces.

Known issues
  • Curve guides don't yet have all ui buttons in place, but they should work none the less.
  • Hair dynamics don't yet respect force fields.

I know it's quite a lot of new functionality, but it should mostly work just like old force fields, just better and more predictably :). In the future I'll also try to make some tutorial videos about the more interesting ways of using the new force field options.


  1. whoa, impressive work. thanks for your time and talent

  2. Great job!
    two questions:
    1 - wasn't the gravity useful as it was before? let's say I need to have different simulation with different gravity solutions...

    2 - have you already done or are you going to do something for the growth feature? sometimes ago on blenderartist there was a thread about painting particles with the hair and the missing growth option in that case...

    Keep up the freaking good work!

  3. grfxthought:
    Thank you!

    1. You can achieve different settings through the "force field weights" panel in each simulation's settings (these weights go beyond 0.0-1.0 btw if you write the value in the button directly). Or if you want ultimate control then gravity is basically just a "force" field with plane shape, which can be set to only effect a certain simulation by assigning it to an effector group.

    2. Yes I have plans for allowing painting of normal and hair "seeds" on the emitter (the item "paintable particle distribution" in the todo list ->) before any dynamics or growing, which can then be emitted with physics or grown like hair.

  4. jahka: wow great work!

    I have a simple (hopefully) feature enhancement to effectors. In the following experiment:

    I was attempting to use a curve to pull particles along the curve length. But the curve effector seems to attract the particles to the central or starting point of the curve and THEN along the curve. I'd prefer to have an option to have the curve attract along it's length as a whole.

    This ICE:XSI video demonstrates the effect I'd like to be able to replicate:

    Keep in mind it's the end result I'm after. This video does do a fairly good job of demonstrating the benefits of nodes for complex custom setups.

  5. Cool stuff indeed, shaped forces are particularly cool to play with :D

    There is a problem though, force field absorption is not functioning yet it seems ( not sure if it's supposed to be working thought :P ).

    And Force is still called Spherical in the particle Field Weights.

  6. A pretty cool idea just occurred to me, Force Field Active Volumes! (working title)

    Each force field has an optional active volume object which defines the volume in which a force is actually valid. So for instance, you can have particles representing bullets, a cube presenting a body of water and an empty with drag force field. The drag force field uses the cube as it's active volume, so when a bullet enters the cube it will start dragging.

    Not sure if this can be done in 2.5 yet, but the applications will be many :)

  7. Wahooney: I thought the Active volumes functionality is essentially what "Every Point" and "Surface" effector shapes do...but I could be interpreting that incorrectly.

  8. Nicholas8681:
    Yes I have plans on making an option for the curve to be a dynamic force instead of the current static functionality. The results should then be exactly like in the video. And yes I know nodes are nice :), but the video also demonstrates that it takes quite a lot of time and knowledge to achieve even a relatively simple effect such as the curve force.

    Oh you're right, absorption doesn't work as I forgot to add the checkbox to rna that enables it :). And about working title "Force Field Active Volumes" it's exactly like Nicholas8681 wrote, you can try it with shape "volume" and "only use -z" in the falloff as the "z-direction" is actually the normal of the surface.

  9. Just fantastically Brilliant. I was having problems with particle's and cloth and Hope this solves this.
    Thanks for your gifts Jahka.

  10. Well there you go! I knew about the Surface type thing, but I didn't know you could restrict outside/inside :P

    Thanks, jahka :)

  11. dude you're doing a super load of work! onward and upwards!

  12. Jahka, congrats and thanks for the great work you're doing!

    A feature suggestion that may not be too difficult.

    When doing complex hairstyles is good to be able to hide and/or freeze some parts in order to comb some locks which go in a different direction than a lower layer of hair for instance.

    Example of the kind of hairstyle I mean:

    Right now in 2.49 is possible to do that, by selecting and hidding hairs.

    What would be handy is the ability to organize hairs in layers, (or hair groups?).
    That way it would be very quick to freeze parts of a hairstyle, to focus on just one part, or to hide other parts to see alone the desired lock.

    Keep it up, and thanks again!

  13. fan9002:
    Yes I agree this would be a very nice feature and it's already on my todo list :) (see "particle editing groups" in the side panel list)

  14. That's great! I'm glad you see it useful too.


  15. jahka:
    I didn't catch discussion of it in the comments, so I wanted to ask if you have a rough idea when hair dynamics will respect force fields? I have a WIP scene that would benefit greatly by so much of your unbelievable work, along with the SmokeSim.


  16. Eric:
    I'm currently working on something else, but after that I can start looking into this. I can't say anything for sure, but I hope to have force fields effecting hair dynamics some time during the next month or so.

  17. Cool ... thanks for the info!