recoil
Rigid-body Dynamics Plug-in for modo 501
Brad Peebler, president and co-founder of Luxology, introduces recoil, the Rigid-body Dynamics Plug-in for modo 501, developed by Eric Soulvie.

Simulating rigid body interactions in modo is easily handled with recoil™, a fully integrated dynamics simulation plug-in for modo 501 developed by Eric Soulvie. Utilizing the popular open-source Bullet Physics engine, recoil simplifies the setup and execution of complex physical simulations by combining robust collision detection with a variety of constraints, forces, and controls. By simply tagging any mesh item to be dynamic, it is ready to respond to forces like gravity or collisions from other objects in your modo scene. The recoil plug-in lets you quickly create incredibly complex animations of interacting objects that would be almost impossible to simulate manually. It is also useful for “stacking” up objects so that they rest against each other (see gumball image below).
Purchase the recoil Plug-in for modo 501
How does recoil work?
The recoil plug-in is based on version 2.77 of the Bullet library. To use it, simply tag which items in your modo scene are going to be dynamic – this makes them ready to respond to natural forces when you press Play on the timeline. For more control, items in modo can be given “wake-up” conditions and an initial “impulse” behavior. A common wake-up event would be a collision, perhaps with an impulse behavior to jump up slightly and then respond to the force of gravity. Or you might choose to have some objects become dynamic only when they are triggered (e.g., reach a certain keyframe). You can create rigs in modo to establish more elaborate trigger conditions that invoke dynamic forces such as when two objects reach a certain distance from one another.
Dynamic behaviors can be combined with keyframe animation. For example, a swinging bat (keyframed manually) can start a simulation when it collides with a tower of wooden pins that then scatter and fall to the ground automatically.
recoil works with either “proxy” objects that approximate the shape of the item you are simulating, or with the actual mesh shape. For SubD’s, recoil can use either the cage geometry or the SubD surface for the collision shape. You can adjust parameters such as mass and density.
As a simulation is running in modo you can adjust parameters and see the effect.
recoil also works with a variety of constraints including plane, hinges, pin, slide, box and point. You can use constraints to connect your objects together – for example you would use a hinge to connect a car door to the car body so it can swing dynamically. Add a point constraint to a row of spheres and they will respond like a beaded necklace. You can also add springs and even motors to facilitate more complex behaviors like elastic coils, shock absorbers or self-propelled machines and gears. A rules-based constraint builder lets you create your combination of constraints that work in a certain order or along a particular direction. Feedback channels in recoil provide information such as how far a slide constraint has moved from its origin and control is provided for breaking (releasing constraints) after a certain break stress is encountered.
The resulting animations are astonishingly realistic and can optionally be baked out for immediate playback without re-computation. You can even use recoil to perform “time warping” effects like speeding up or slowing down a simulation – even during a camera move.
And in addition to animated simulations, recoil is also useful for stacking objects so that they come to a resting position naturally – like cubes of sugar in a dish or gumballs in a vending machine. Oh, we should mention it is downright fun to use!
recoil Still Image Examples
“Recoil is both fast and robust, it will handle hundreds of dynamic items with ease.”
– Fredrik Stenson
Lead Technical Artist
Wall damage simulation to create a static image, by Chris Golchert.
recoil automates placement of toy blocks in a container.
recoil Video Examples
Integration of recoil simulation rendered in modo with live action.
Subsurface scattering and heavy depth-of-field used on this “slo mo” sequence.
Chris Hague shows how constraints (such as those holding the cube array together) can be broken if a certain force threshold is exceeded.
“Recoil is so muuuuch fun, I just added a ‘kicker’ inside the toaster and animated the trigger and collision for each slide of toast to start the sim at the right frame, because all the bread are already inside the toaster. That’s all I did, it’s just that simple, great ! =)”
— Andy Probst
Here is a ragdoll effect done with the recoil plug-in for modo by Chris Hague. Ouch!
Text tool + Occlusion texture + HDRE + recoil provide a simple motion graphics effect.
OpenGL video shows a work-in-progress of a tank tread; a pin constraint will need to be added to maintain alignment when the tread assembly rotates.
Simple collision dynamics used to good effect by Andy Probst (some post production here as well).
This video shows the excellent stability of recoil solving and some nice secondary motions.
This test shows a fancy way to get steel ball bearings to come to a resting state inside a vase.
recoil Dynamics Features
Overall
- Mass and Density
- Mass source
- Damping (linear and angular)
- Enable (on/off)
- Type (Dynamic or Kinematic)
Collision
- Shape:
bounding box, sphere, hull, mesh, plane, convex, static mesh,
capsule or cylinder - Use Cage
- Bounce
- Friction
- Margin
Sleep
- Wake-on: start, collision velocity & force, velocity, trigger
- Value
Deactivation
- time, linear threshold, angular threshold
Impulse
- X/Y/Z (force)
- X/Y/Z (position)
- X/Y/Z/ (rotational torque)
Cache System
- Bake
- Clear
- Bake to transform (converts simulation to keyframes)
recoil Constraints Features
- Pin
- Point
- Plane
- Box
- Universal (just like a U-joint on a car drive shaft)
- Cone
- Slide (constrains movement to a straight line)
- Hinge
- Sliding Hinge
- Motor (provides constant forward motion or rotational force to any dynamic object)
- Spring
recoil Forces Features
- Linear (pushes objects away from the center of the defined force)
- Drag (magnet)
- Radial (centrifugal)
- Falloffs (spherical attenuated falloff for forces)
recoil Solver Features
- Active body
- Passive body (considered for collision detection only)
- Start time
- Accuracy (steps)
- Gravity (world force value in X/Y/Z)
recoil Advanced Controls Features
- Visualization options(draw collision, state...)
- Global Density
- Scene Scale
- Time Scale
- Sleep Threshold (linear and angular)
- Global Constraint Force Mixing
- Use SIMD
- Friction separate
- Use warm starting
- Friction warm starting
- Two direction friction
- Randomize Order
- Resting Contact threshold
- Split impulse
The recoil Plug-in documentation fits seamlessly within the modo Online Help System.
Meet Eric Soulvie, creator of the recoil Rigid-body Dynamics Plug-in for modo 501.
Eric Soulvie is an experienced 3D tools programmer based in Seattle, Washington. Eric has worked for Foundation Imaging (Roughnecks), ESC (The Matrix 2, 3), Blizzard Entertainment, Weta Digital (Avatar, Jumper, et. al. ) and many other production houses. Eric was also one of the original programmers on modo and used the modo Plug-in SDK to create the recoil Plug-in.
“One of the nice things about the modo SDK is you can create plug-in services that are new but that other plug-ins have access to...”
– Eric Soulvie
Please contact Luxology Sales if you have questions...
You can order products or ask sales questions via telephone, fax or web form.
| Sales Telephone | (650) 336-1380 Voice | Call us 9 a.m. to 5 p.m. Pacific Time |
| Sales Fax | (650) 336-1386 Fax | Fax in your purchase orders |
| Web Form | Contact us online | You will get a reply via email |
If you have Support Questions...
If you need help using Luxology software, please contact Luxology Support on our Support Contact page. If you think you have found an issue (e.g. bug), please submit the error using the special form on your My Account page. For a quick tutorial on how to submit a bug report, please see this thread on the Luxology Forum.
