Lucid Physics for 3dsmax Documentation

Documentation

Lucid for 3ds Max Documentation

Congratulations, you've reached the right place to start learning, brush up on existing topics, and find anything else you need about Lucid Physics plugin for Autodesk 3dsmax. Use the search field if you have something specific in mind or follow the categorical links below to find the topic you need.

Before You Start

  • Lucid in a Nutshell
  • Minimum System Requirements
  • Installation
  • Pricing and Licensing
  • End User License Agreement

Working with Lucid

  • Real-time Simulation Modes
  • Resolution and Particle Radius
  • Simulating Fluids
  • Simulating Cloth
  • Simulating Hair
  • Simulating Soft Objects
  • Simulating Rigid Objects
  • Simulating Ropes and Chains
  • Simulating Grains
  • Simulating Gases
  • Adding Forces
  • Recording Simulation
  • Playing Back and Retiming Simulation
  • Animating Physics Material Types
  • Managing Simulated Objects
  • Collision Objects
  • Working with Particle Flow
  • Particle Display
  • Scene Units Setup

Reference

  • Sample Scenes - A great place to start and explore Lucid
  • Global Settings
  • Lucid Toolbar
  • Lucid Main Menu
  • Lucid Modifier
  • Foam Object
  • Mesher Object
  • Attachment Helper
  • Flex Settings Helper
  • Particle Flow Integration
    • Particle Flow Fluid Operator
    • Particle Flow Geometry Operator
    • Particle Flow Display Operator

MaxScript Access

  • Controlling Lucid from MaxScript

Frequently Asked Questions

  • Supporting Material
  • Simulation-Related
  • Scene Management


Sample Scenes

  • Sample Scenes
    • Overview
    • A note about units
    • Water poured into glasses
    • Water balls in glass with ice
    • Water pouring into a glass with ice, using Particle Flow
    • Fluid with foam
    • Rope physics
    • Particle Flow operator
    • Attached Softbodies
    • Objects with initial state
      • Instructions
    • Object denting
    • Rod bending
    • Rain drops
    • Cloth tearing
    • Inflated tearing
    • Magma flow
    • Gas box
    • Animated Softbody Mesh

Overview

We present these sample scenes free of charge for the purpose of exploring and learning Lucid. Please feel free to modify and distribute them.

All of the scenes were saved using 3dsmax 2013 and should thus be compatible with any version of 3dsmax 2013 or newer. You will need 7-zip archiver installed to extract the files.

A note about units

Because Lucid uses centimeters as its internal units it is recommended that you set your scene units to centimeter and use these units when opening any of the sample scenes below.

Water poured into glasses

A demonstration scene where a sphere volume of water first fills a jar and the jar is then animated to tip and pour its contents into three glasses and a table.

Go to attached video

Explanation of water pouring into glasses

Download: WaterPouredIntoGlassesScene.7z

Water balls in glass with ice

Shows how to use water in Lucid with objects of lighter density which float in it. In this case, we have a glass filled with three balls of water with ice in it. The water is meshed separately as three individual objects and the whole scene is rendered with Mental Ray. The ice cubes are simulated as rigid body objects with density slightly lower that of water (0.99 for ice cubes compared to 1 for water).

Global Flex settings in the scene have been adjusted to allow stability and correct watery feel.

Go to attached video

Render of water balls with ice in a glass

Download: IceAndWaterBallsInGlass.7z

Water pouring into a glass with ice, using Particle Flow

Similar as the previous sample scene, using the same global parameters. However, this scene uses a Particle Flow operator to pour the fluid into the glass geometry.

Go to attached video

Render of water balls with ice in a glass

Download: IceAndWaterWithPFlow.7z

Fluid with foam

A scene with a fluid box inside a larger collision box. Foam will be created during simulation. Read more on creating foam.

Go to attached video

Scene explanation

Download: FluidWithFoam.7z

Rope physics

Contains spline and NURBS curves objects driven by Lucid's curve physics. Wind is bound to the spline object to demonstrate spacewarp bindings. The curves are fixed at one or two points to show attachment feature. Read more on simulating ropes and chains.

Go to attached video

Creating simple ropes (Begin at 2:50)

Download: CurvePhysics.7z

Particle Flow operator

A scene with a Particle Flow emitter using Lucid PF operator to fill a collision box with particles. Read more on working with Particle Flow.

Go to attached video

Basic Particle Flow Setup (Begin at 2:55)

Download: LucidPFlowOperator.7z

Attached Softbodies

Demonstrates attachment objects in Lucid which are used to bind two or more simulated objects together.

Go to attached video

Attachment object intro (Begin at 0:10)

Download: SoftbodiesWithAttachment.7z

Objects with initial state

Shows Lucid's initial state option for simulated objects by having two fluid objects fill a volume in a settled state at the start of the simulation.

Go to attached video

Preserving initial state (Begin at 0:16)

Download: FluidWithInitialState.7z

Instructions

  1. Open the scene
  2. Select Teapot001 and in Lucid modifier properties turn off Enabled option
  3. Start simulation and scrub the timeline forward until the two fluid volumes settle in place
  4. Select Sphere001 and in Lucid modifier properties press the Set Initial State button
  5. Repeat step 4 for Sphere002
  6. Stop simulation
  7. Select Teapot001 and press the Enable option in Lucid modifier
  8. Start simulation again, this time the two sphere volumes with start with their initial state in settled mode

Object denting

Demonstrates the usage of plastic creep parameters to create lasting dents in rigid body objects. Read rigid objects documentation for more details.

Go to attached video

How to create dents in objects (Begin at 6:40)

Download: LucidBoxDentScene.7z

Rod bending

Demonstrates usage of Plastic parameters in Flex settings helper to simulate persistent object deformation effects.

Go to attached video

How to make objects bend persistently (Begin at 5:30)

Download: RodDeformation.7z

Rain drops

Shows off Lucid's Particle Flow geometry operator generating drops of water which then fall into a puddle with a predefined initial shape.

Go to attached video

Using Particle Flow geometry operator

Download: RainScene.7z

Cloth tearing

Demonstrates basic stress-based tearing of Lucid cloth. Read about simulating cloth for more information.

Go to attached video

Controlling cloth tearing (Begin at 4:45)

Download: ClothTearing.7z

Inflated tearing

Demonstrates basic stress-based tearing of Lucid inflated objects.

Go to attached video

Inflated tearing (Begin at 5:25)

Download: InflatedTearing.7z

Magma flow

A magma sphere is simulated flowing down a ravine using basic 3dsmax objects. Read more about simulating fluids.

Go to attached video

Simulating grains

Download: MagmaFlow.7z

Gas box

Shows how to make a basic gas cloud using Lucid fluid material with zero buoyancy. Read more about simulating gases.

Go to attached video

Simulating a cloud (Begin at 4:55)

Download: GasBox.7z

Animated Softbody Mesh

Demonstrates usage of a deforming animated mesh which participates in simulation as a soft body object. We simulate a snake-like cylinder as it crawls on a plane geometry. Read more about simulating gases.

Go to attached video

Simulating deforming soft body objects

Download: LucidSnake.7z


Resolution and Particle Radius

  • Resolution and Particle Radius
    • Overview
    • Automatic particle radius
    • Manual particle radius

Overview

Aside from collision objects, all objects in Lucid are converted to particles and internally simulated in their particle form. The size of all particles within a simulation is constant, meaning two or more separate objects will be represented as particles with the same global size. Lucid automatically generates particles for all objects based on the volume within the objects to avoid collisions between particles in the initial scene state.

The particle size plays an important role in the outcome of the simulation. Larger particles will behave differently from smaller particles. Due to the varying sizes of objects inside a simulation it is, therefore, important to understand how particle size is automatically chosen and how to be able to manually override these settings.

Automatic particle radius

If the Manual Radius parameter in Flex Settings Helper is set to 0, which is the default value, Lucid will automatically determine the particle radius based on the object scale within the simulation. At the start of a simulation Lucid goes through all objects with Lucid modifier, Particle Flow Fluid Operators, and Particle Flow Geometry Operators to find the object which is the largest.

Lucid then uses this largest object scale in conjunction with Resolution parameter in Flex Settings Helper to determine the particle radius to use. The largest dimension is divided by the value of Resolution parameter to determine the radius. This radius is then used for all particles in the scene.

  • For objects with Lucid modifier the bounding box of the scene object is used to determine its size
  • For Particle Flow operators the size of the Source emitter is used to determine the scale

Manual particle radius

If you want to have control over the particle scale you can change the Manual Radius parameter in Flex Settings Helper to a non-zero value. In this case the automatic particle radius process outlined above is skipped and the value you specify is used instead. Smaller particle radius values will generate more particles in the scene as Lucid attempts to fill your simulated geometry with tightly packed particles.

It is important to set the radius to the largest acceptable value for your simulation to improve performance and speed of the simulation. Lower values will make the simulation more granular at the expense of its performance.


Scene management FAQ

How to remove all Lucid traces from a scene?

It may be necessary sometimes to clear a scene completely fro any Lucid objects, for example to send it to a client or render farm which doesn't have Lucid installed and avoid the Missing Plugin warnings.

To clear the scene of any traces of Lucid objects execute the following MAXScript in the MAXScript window:

objectsCopy = #()
for i = 1 to $objects.count do append objectsCopy $objects[i]

for i = 1 to objectsCopy.count do
(
    local obj = objectsCopy[i]
    if (obj != undefined and (
        -- Lucid Display operator
        (obj.classid[1] == -629533538 and obj.classid[2] == 515064320) or
        -- Lucid Fluid operator
        (obj.classid[1] == 2076459537 and obj.classid[2] == 515064320) or
        -- Lucid Geometry operator
        (obj.classid[1] == -1076207892 and obj.classid[2] == 515064320) or
        -- Lucid Foam object
        (obj.classid[1] == 1939138682 and obj.classid[2] == 354662196) or
        -- Lucid Mesher object
        (obj.classid[1] == -337991789 and obj.classid[2] == -361310889) or
        -- Flex Settings helper
        (obj.classid[1] == -687842634 and obj.classid[2] == 1279010058) or
        -- Lucid Attachment helper
        (obj.classid[1] == 330120824 and obj.classid[2] == 1201813424) ) ) then
    (
        print obj.name
        delete obj
    )
)


Scene Units Setup

  • Scene Units Setup
    • Overview
    • Opening and merging scenes

Overview

Lucid physics uses centimeters as its base units during simulation. It will respect the units configuration in 3dsmax and automatically convert them to centimeters when simulating. All distances in Lucid parameters UI will be properly displayed using 3dsmax unit system.

It is, therefore, your responsibility as a user to understand the current scale of your scene and create simulations using a realistic world size. For example, 1 cubic meter pool of water will behave very differently than a 1 cubic centimeter of water.

It is recommended that you change the internal units in your 3dsmax scene to centimeters before using Lucid. This will ensure that the world scale will be more intuitive and relate closer to how Lucid simulates it.

Opening and merging scenes

When you open or merge in a scene which doesn't match the last scene's unit configuration 3dsmax will present a unit conversion dialog. It is usually a good idea not to adopt the scene's scaling and instead use the centimeter scaling which you already assigned to the current scene.


Recording Simulation

  • Recording Simulation
    • Videos
    • Overview
    • How to record simulation
    • Selecting which objects are recorded
    • How to clear recorded data
    • Storing recorded data outside of the scene
    • Exporting recorded data to Thinkbox PRT format
    • Preserving recorded data during subsequent simulations

Videos

Go to attached video

Recording Particle Flow particles (@2:20)

Go to attached video

Caching to external .lrd and .prt files

Overview

After you have fine-tuned the simulation parameters it is time to bake the simulation into data which can be played back any time and saved with the scene. Lucid provides an internal mechanism to do this through its set of recording features. When you record the simulation, each Lucid object will internally store its state data per-frame and use this data to re-create the changes made by the simulation at any given time in the future.

Simulation is recorded for the current scene animation range. To change the keyframes for which the simulation is baked simply adjust the animation range values.

How to record simulation

First, make sure that 3dsmax's current animation range is set to the frame which you want to record. Then use of these methods to record the simulation:

  1. In Lucid toolbar click the Record button to start recording. During the recording you can click this button again at any time to abort recording.
  2. In Lucid main menu click the Record Active Time Range option.
  3. Use the LucidRecordActiveTimeRange() command in MaxScript listener.

Selecting which objects are recorded

Some objects in the scene, like collision, convex, and SDF objects, are never recorded. At times you might also need to disable recording of other specific objects in the scene. For example, you might only want to record a soft body object floating in fluid but not the fluid itself.

To turn off recording a specific object go to its options and find the Recording Settings rollout. Then uncheck the Record Data option.

Alternatively, you can select this object and use $.modifiers[#Lucid_Modifier].recordData = off MaxScript command in the listener.

How to clear recorded data

If you want to reset the recorded data in the scene or just make the scene file small again, you can clear the recorded data using these methods:
  1. Simply begin simulating the scene again, it will clear the recorded data
  2. Start recording the scene again, which will clear previously recorded data
  3. Select your object and go to its settings, then find the Recording Settings rollout. Press the Clear button to remove recorded data only from this object. This button will only be enabled if there is recorded data present for the object.

Storing recorded data outside of the scene

You may choose to store the recorded simulation data outside of current .max file. This will keep the .max scene file small while also allowing you to play back the recorded simulation cache. This can allow you, for example, to send the small scene file to someone else to edit and then get it back while retaining the simulated data within it.

To save the scene externally:
  1. Select the object and go to its options.
  2. Find the Recording Settings rollout
  3. Check the Save to File option.
  4. Click Browse button and select the destination file with extension .lrd (Lucid Recorded Data).

Exporting recorded data to Thinkbox PRT format

While you can use the method described above to store recorded data in .lrd format, you can also choose to export the data in .prt file format. This format can be used with Thinkbox products like Krakatoa to render and otherwise manipulate particles generated with Lucid.

Note that .prt file format can only be used to export and store particle simulation sequences and will not allow you to cache simulation of mesh changes. For that purpose you need to use the .lrd file format instead.

Preserving recorded data during subsequent simulations

After you have recorded your simulation Lucid will keep it in the scene until you re-simulate or re-record the scene, at which point the previously recorded data will be deleted. If you want the recorded data to survive subsequent simulations you need to de-activate the object by turning off the Active check box in the object's parameters. Inactive objects will not be added to simulations and will keep their recorded data until you manually clear it or re-add the object to simulation and re-simulate the scene.

Go to attached video

Making recorded objects survive subsequent simulations


Particle Flow Geometry Operator

  • Particle Flow Geometry Operator
    • Videos
    • Overview
    • Creating geometry operator
    • Multiple geometry operators
    • Particle display
    • Parameters
  • MaxScript access

Videos

Go to attached video

Using Particle Flow geometry operator

Overview

Geometry Particle Flow operator creates Lucid objects at each particle in an event. These objects can be of any body type and can be adjusted using controls similar to the ones in Lucid modifier. Particles can be controlled using other stanrdard Particle Flow operators, and can be created and deleted arbitrarily.

Use geometry operator to simulate mass object effects like foliage, rain droplets, and pools made out of soft balls.

Creating geometry operator

To add Lucid's geometry operator to your scene:

  1. Open particle view
  2. In depot area find Lucid Geometry operator
  3. Drag and drop it into your chosen Particle Flow event

The geometry operator expects that particles will have a particle mesh shape defined. For this you need to replace the default shape operator with a Shape Instance operator and pick a mesh from the scene to use as the instance shape.

Once you add the geometry operator you can configure it using the parameters available to the right of the particle view. This configuration may include setting the body type and its parameters. For reference on setting up this configuration please refer to Lucid modifier documentation. The Lucid rollups in particle view will not be automatically hidden and presented to you based on the body type so you must take care of setting the values in the correct rollup.

Multiple geometry operators

You can have multiple geometry operators present in multiple events within the same Particle Flow source object. Geometry operators can also be in the same scene as fluid operators, however, they must be in their own events.

If there are multiple operators within an event the one at the bottom of the list will be the active one.

Having Lucid operators in multiple Particle Flow source objects is not supported.

Particle display

Geometry operator will alter the mesh shapes of particles in the event. You can use the standard shape display operator in Particle Flow to see the results.

If you want to mesh the resulting fluid particles you can use the mesher object.

If you want to display particles using Lucid's particle display use the display operator. Make sure to remove any other display operators present in the view. The particles can also be rendered this way. This is useful mostly for debugging the setup of particle simulation.

Parameters

Aside from a few minor differences the parameters within the Particle Flow geometry operator are identical to those found in Lucid modifier. The parameters are applied on per-particle basis to each geometry instance.

MaxScript access

Geometry operator's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with geometry operators: Test_PFGeometryOperator.ms


Playing Back and Retiming Simulation

  • Playing Back and Retiming Simulation
    • Overview
    • Reversing playback
    • Scaling playback speed

Overview

Once you have recorded your simulation you can play it back by using 3dsmax timeline playback controls. You can also control how the recorded data is played back. It can be reversed, slowed down, or sped up by a specific factor.

Go to attached video

Reversing and rescaling simulation

The playback controls described below only apply to Lucid modifier, they are not available for Particle Flow Fluid Operator and Particle Flow Geometry Operator. This is because Particle Flow controls the particle count and Lucid must obey it at any given frame, even in recorded mode. Thus we cannot reverse or re-time the simulation in Particle Flow operators.

Reversing playback

Reversing simulation playback can create some useful effects such as objects un-breaking, or fluid flowing back into a container. To reverse the playback use the Reverse check box in the Recording rollout.

Scaling playback speed

Scaling simulation speed can produce effects such as slow-motion animation. In the Recording rollout there is a scale factor parameter, 1.0 by default. Reduce this value to slow down the animation and increase it to speed the animation up. This value can be animated so you can have different speed of playback at different times in your scene.


Real-time Simulation Modes

  • Real-time Simulation Modes
    • Videos
    • Types of real-time simulation
      • Incremental Simulation
      • Locked Simulation
      • Live Simulation
    • How to change current simulation mode and state
    • MaxScript access
    • Troubleshooting
      • When pressing Sandbox or Record buttons simulation doesn't start
      • When trying basic simulations or sample scenes driver error appears

Videos

Go to attached video

Simulation modes overview @3:45

When you just begin a new scene Lucid is not active by default. To see any effects from Lucid you need to manually begin the simulation. This will detect any objects currently in the scene which are configured to be simulated with Lucid, add them into the simulation, and start simulating them according to the type of real-time simulation which you choose.

Types of real-time simulation

Depending on behavior you need to adjust your simulation, there are three different types of simulation available:

Incremental Simulation

  • Begins simulation at start of animation range.
  • Simulation is advanced only when moving time slider forward (or if animation is playing).
  • Simulation is advanced one step at a time regardless of many frames time slider has been moved, as such it does not guarantee a sync with key-based animation within the scene.

This type of simulation is typically useful for manually scrubbing the timeline while keeping Max responsive.

Locked Simulation

  • Begins simulation at start of animation range but current time slider position is not changed.
  • Simulation is advanced step by step until the current frame is reached.
  • If scene or current time slider position changes, the simulation is re-calculated from start until current frame.
  • If current frame is moved forward in time the simulation happens only for the extra frames since the last one. As such, scrubbing simulation forward is usually quick but scrubbing it backward can result in slower performance.
  • Guarantees sync with scene key-based animation.

This type of simulation is similar to working with particle systems like PFlow.

Live Simulation

  • Begins simulation at start of animation range.
  • Simulation is "played" in real-time as fast as the system resources will allow.
  • Scene time slider is not affected and can be moved manually.
  • No sync happens with key-based animation.

This type of simulation is good for sitting back and watching things unfold without having to scrub the timeline or using 3dsmax's play controls.

How to change current simulation mode and state

Default simulation mode is Incremental. You can change the current simulation mode through:
  1. Lucid toolbar by using the first button containing a fly-out with more buttons for each simulation mode
  2. Lucid main menu by clicking the Toggle Lucid Physics entry
  3. MaxScript by typing in one of the commands below into the listener

MaxScript access

Following MaxScript functions control Lucid simulation:

-- Begin simulation (does nothing if already simulating)
LucidStart()

-- When simulating in non-live mode, advances the simulation by one frame
LucidStep()

-- Stop Lucid simulation (does nothing if not already simulating)
LucidStop()

-- Returns true if currently simulating
isStarted = LucidIsStarted()

-- Starts simulation and scene animation playback
LucidPlay()

-- Gets the currently used simulation type as 0-based integer value
simulationType = GetSimulationType()

-- Sets the currently used simulation type (0 - incremental, 1 - locked, 2 - live)
SetSimulationType simulationType

Troubleshooting

When pressing Sandbox or Record buttons simulation doesn't start

  • Cause 1: You might have an outdated video card
  • Solution 1: Please check Minimum System Requirements
  • Cause 2: Your video card drivers are out of date
  • Solution 2: Download and install latest NVidia Graphics drivers
  • Cause 3: You do not have correct device selected for CUDA computing
  • Solution 3:
    1. Open NVidia Control Panel in Windows Control Panel dialog
    2. In the items view choose 3D Settings -> Configure Surround, PhysX
    3. under PhysX Settings -> Processor select Auto-select (recommended) setting

When trying basic simulations or sample scenes driver error appears

  • Cause 1: Your computer might have incorrect CUDA driver
  • Solution 1: Please try downloading and running NVidia Flex Demos to see if they run fine. If they run without problem, please contact support. Otherwise you might need to update your graphics card driver.


Pricing and Licensing

  • Pricing and Licensing
    • Lucid Discounts
    • Licensing
    • Render Nodes
    • Pricing
    • Refunds

Lucid Discounts

  • Volume Discount
    To help you get Lucid into your studio we provide discounts whenever you purchase more than one license. The discount applies in incremental portions for 5 and 10 licenses. For the exact figures please refer to the purchase section.
  • Upgrade Discounts
    Ephere provides two separate upgrade discounts for all existing Lucid users who own a previous version of the plugin:
    • Free upgrade is available to anyone who has purchased a previous Lucid version later than 6 months before the latest version came out. For example, if you have purchased Lucid V1 in October 2016, you are eligible for a free upgrade to Lucid V3 which came out in January 2017.
    • 25% discount is available to all previous Lucid license holders who do not fall under the first category above. A special 50% discount is available to people who upgrade within the first month of a new version coming out.
  • Student and Educational Discount
    If you are a student or a school and can prove your enrollment and educational status you are eligible to our 50% educational discount. A valid and current ID emailed to us is acceptable as proof.
  • Crossgrade Discount
    If you own a license of a competing product and can prove this ownership you are eligible for a 25% crossgrade discount. A competing product is any other hair solution for 3ds Max which is currently under active development. A valid and current proof of purchase for a competing product emailed to us is acceptable as proof.

Licensing

When you purchase an Lucid license, you are buying a perpetual license for the current version of the product. Even after the next and newer versions of Lucid come out you may continue downloading, installing, and using the version which you purchased. As a license owner you are also eligible for substantial upgrade discounts towards future versions of Lucid.

Render Nodes

If you are installing Lucid on a render node/slave computer you do not require any licenses. Lucid will not ask to be licensed when rendering only. Therefore, only workstation computers require a license and you may install Lucid on an unlimited number of network render computers.

Pricing

Prices for Lucid licenses depend on multiple factors. Your individual price can vary depending on various discounts which we provide. Please see the purchase section for the exact figures. Prices may change at any time without notice.

Refunds

We have a no-refund policy except if a payment is made in error or there are any issues with the payment transaction. We are happy to help you resolve any issues should you experience them promptly.


Simulating Soft Objects

  • Simulating Soft Objects
    • Videos
    • Overview
    • Inflated
    • Soft body
  • Troubleshooting
    • Softbody object freezes or floats away

Videos

Go to attached video

Soft body parameters (Begin at 2:15)

Go to attached video

Soft body simulation tips (Begin at 4:20)

Overview

Soft body objects are simulated using a particle lattice in Lucid. As such, you need to apply the Lucid modifier to your object and set the body type to Soft. The mesh will be voxelized to generate internal particles and, using a set of settings you can adjust the behavior of the simulation.

Similarly, you can have a set of soft-body objects generated with Particle Flow geometry operator en masse.

Inflated

A great way to simulate objects filled with air like tires, balloons, and bubbles is through inflated body type. This approach is faster than using soft-bodies because it only generates one particle per each vertex of the mesh. It also allows effects like tearing.

Soft body

Soft body, like rigid body and fluid objects, generate a volume of particles inside the mesh. These particles are connected using soft constraints and act as a soft mass.

Troubleshooting

Softbody object freezes or floats away

  • Problem: Soft body objects either stay in place during simulation or start moving in a strange direction not respecting the forces within the scene
  • Cause: This can be caused by particles within the soft body overlapping each other or by the solver's inability to solve the constraints between soft body particles
  • Solution: Try to manually reduce the particle radius. Also try to increase the number of iterations within the simulation in Flex settings helper.


Simulating Ropes and Chains

  • Simulating Ropes and Chains
    • Videos
    • Overview
    • Creating a rope

Videos

Go to attached video

Creating simple ropes (Begin at 2:50)

Go to attached video

Curve simulation parameters (Begin at 3:40)

Overview

Lucid can simulate splines and NURBS curves to produce effects like ropes, chains, and strands of various materials. Chains or linked lattices of particles are used to internally represent the curves. You can control the particle generation parameters to adjust the resulting simulation behavior.

Selected knots on the spline or NURBS curve will be used to denote fixed points of the curve. These points will not be simulated. Instead any animation applied to them from 3dsmax key-frames will be passed into Lucid to drive the simulation.

Creating a rope

To create a rope you first need a spline or a NURBS curve object from which the rope will be constructed. Then you need to select the spline or NURBS curve object and either add the Lucid modifier to it manually or use any preset button the Lucid toolbar to add it. Simulating the scene will now have the rope physics for the curve object you selected.

It is a good idea to use the Flex settings helper to manually set the particle radius which can give a better control over rope shape and collisions.

If you wish to have a part of the rope animated by 3dsmax key-frame animation you need to select the knots which are animated before the Lucid modifier in the stack.


Simulation related FAQ

  • Simulation related FAQ
    • Is there a limit to number of particles you can simulate?
    • Why are my (inflatable, rigid, cloth) objects going through one another?
    • When placed far away from origin, my particles do not appear where the object should be.
    • Lucid Modifier shows original mesh during fluid simulation instead of meshed fluid

Is there a limit to number of particles you can simulate?

Yes and it could depend on the type of video card you have. At the moment, Lucid has a pre-set limit of 1.3M particles which can be increased in Flex settings helper. You run into a risk of crashing your graphics driver and stability issues if you go past a certain limit. This limit is determined by NVidia Flex, which Lucid uses as its dynamics engine.

Why are my (inflatable, rigid, cloth) objects going through one another?

Chances are that your particle size is too small or you need to improve the accuracy of the simulation. Lucid uses particle-based collisions which means that particles need to be big enough to collide with one another.
  • In cloth simulations one particle is generated per each vertex so you might need to increase the number of vertices in the cloth mesh
  • Use the Show as Particles option in Lucid modifier to see the actual particles present in the simulation. If they are too small, use the Manual Radius option in Flex settings helper to specify their size.
  • If collisions still don't happen increase the number of Substeps and/or Iterations in Flex settings helper to improve the accuracy of the simulation

When placed far away from origin, my particles do not appear where the object should be.

  • Problem: If you simulate an object using Lucid modifier, Particle Flow Fluid Operator, or any other method in Lucid and place this object very far from the origin the particles generated appear clipped and located closer to the scene origin than the object.
  • Cause: There is a global "sandbox" object which has a default size and, chances are, your simulated object is out of its range. The sandbox limits are used to ensure simulation stability by disallowing objects to explode or fall into infinity.
  • Solution: There are two ways to resolve this:
    1. Change the sandbox size in Flex settings helper
    2. Add a global sandbox object to the scene and resize it to encapsulate your scene

Lucid Modifier shows original mesh during fluid simulation instead of meshed fluid

  • Problem: When using Lucid Modifier to simulate fluid and leaving "Show as Particles" unchecked the mesh doesn't change from the original mesh to which the modifier is applied
  • Cause: The Granularity value in Fluid Settings rollup is too high. This causes particles to be meshed into an empty mesh. In this case Lucid doesn't modify the input mesh.
  • Solution: Reduce the Granularity value


Working with Particle Flow

  • Working with Particle Flow
    • Videos
    • Frequently Asked Questions
      • Particles are generated in visible steps

Videos

Go to attached video Basic Particle Flow Setup (Begin at 2:55) | Go to attached video Using Particle Flow geometry operator
Go to attached video Particle Flow display operator (Begin at 6:05) | Go to attached video Multiple Particle Flow emitters tutorial (Begin at 0:17)

Frequently Asked Questions

Particles are generated in visible steps

  • Problem: When PF Lucid Fluid operator is used the particle stream is produced in visible steps.
  • Cause: Particle Flow generates new particles only one per every frame by default. This means that particles will come in packets if many of them are to be generated in a short time span.
  • Solution 1: Use an Object Placement operator to spawn particles and randomize their positions. This will cause particles to be created at different distances from the emitter for every frame.
  • Solution 2: Change the Integration setting in Particle Flow source object to more than once per frame.


Supporting Material FAQ

  • Supporting Material FAQ
    • .chm help file displays blank on Windows
      • Problem
      • Cause
      • Solution

.chm help file displays blank on Windows

Problem

When .chm compiled help is downloaded from the documentation page opening it on Windows produces a blank page.

Cause

Windows automatically blocks all .chm files downloaded from the web.

Solution

Unblock the .chm file manually by going to the Properties window of the file and pressing the Unblock button. Opening the file afterwards will reveal all contents.


Simulating Rigid Objects

  • Simulating Rigid Objects
    • Overview
    • Bending and denting

Overview

Lucid can simulate solid objects by creating a particle lattice held together with rigid constraints. The particles in a solid objects can collide with other particles in Lucid regardless of their type. This way, rigid objects can interact with other rigid objects, soft object, fluid, etc.

To create a single rigid object use the Lucid modifier and set its body type parameter to Rigid. Likewise, you can use the Lucid toolbar and apply a Wood or Metal preset to a 3dsmax mesh geometry.

You can use Particle Flow Geometry operator to create many rigid objects based on some geometry instance within the scene. Whether you use PFlow or Lucid modifier you might need to configure the rigid parameters to suit your desired simulation behavior. You can make objects more or less solid, control the size of their lattice, and make them dentable or bendable.

Bending and denting

If you want to create lasting changes to your objects you need to use the plastic parameters in Flex settings helper. This is a good way to simulate metals and other material types which can bend and dent.

Go to attached video

How to create dents in objects (Begin at 6:40)

Go to attached video

How to make objects bend persistently (Begin at 5:30)


Simulating Fluids

  • Simulating Fluids
    • Overview
    • Using fluid volume
      • With Lucid toolbar
      • Manually
    • Using Particle Flow
      • Recording Particle Flow simulations
      • More information
    • Working with fluid mesh
      • Fluid volume mesh
      • Particle Flow fluid
      • Multiple fluids in same mesh
      • Meshing parameters
      • Motion blur
      • UV coordinates
    • Creating foam
      • Known limitations

Overview

One of Lucid's strength is its ability to help you quickly and easily create simulations of fluid objects. Water, glue, mud, and jelly are just some of the possible configurations. Create a fluid volume or emit the fluid using Particle Flow, set some parameters and quickly see it in action.

Using fluid volume

The easiest way to create a fluid in Lucid is to select a mesh in the scene and use it to define the volume of liquid. Fluid particles will be generated within this mesh using our tight-packing algorithm.

For example, you can use a fluid volume to create a pool of water, a water droplet, or a jelly cake.

To create a fluid volume:

With Lucid toolbar

  1. Select your object
  2. Click on the Water, Mud, or Glue preset in Lucid toolbar

Manually

  1. Select your object
  2. In the modifier stack add Lucid Modifier
  3. Set the Material Type to fluid

You are ready to simulate.

Using Particle Flow

To gain much control over how fluid is generated, simulated, and destroyed, you can use Particle Flow. This allows Lucid fluid particles to be created over time, different forces to be applied to them, and fluid particles can be deleted or removed from simulation arbitrarily.

For example, you can use Particle Flow Lucid fluid to create a waterfall, a hose spilling water, or a river flowing into an ocean.

To use Lucid with Particle Flow:

  1. Create a Particle Flow source object
  2. Open Particle View
  3. Find Lucid Fluid operator inside the operator depot list
  4. Drag Lucid Fluid operator icon and drop it inside a Particle Flow event between other operators

You need to manually start the simulation with an Incremental mode. Once you do this, scrubbing the timeline will produce the fluid particles. The scene will behave similarly to performing any other Particle Flow simulation from now on. If you stop Lucid simulation the particles will be glued to the Particle Flow source emitter.

Note: It helps to create a Flex Settings Helper and set Manual Radius parameter to a non-0 value since default radius of fluid particles might be too small or too big for your simulation.

Go to attached video

Basic Particle Flow Setup (Begin at 2:55)

Recording Particle Flow simulations

Just like any other place in Lucid, Particle Flow fluid particles can be recorded. It is recommended not to change birth or death parameters in Particle Flow after recording Lucid fluid because Lucid relies on the same particles to be present to restore their positions during playback. Any modifications to particle behavior will also not be reflected during playback of pre-recorded Lucid fluid particles.

More information

Help on having multiple emitters and displaying the fluids can be found in Working with Particle Flow and Particle Flow Fluid Operator documentation.

Working with fluid mesh

Lucid presents two ways to display simulated objects: as particles or as a mesh. In case of fluids, the displayed mesh is generated from fluid particles using our fast fluid meshing algorithm. During simulation tweaking and viewport preview it is generally advisable to show the fluids as particles. This provides quicker display feedback and requires fewer calculations. However, it is usually needed to have the fluid converted to a mesh for rendering and presentation.

Go to attached video

Iso and Anisotropic fluid meshing (Begin at 2:35)

Fluid volume mesh

If a simulation is active it is very easy to switch between particle and mesh representation of fluid volumes. To do it, go to the Lucid modifier of the object and toggle the Show as Particles option. You should see the resulting fluid change between particles and mesh right away.

If you have recorded your fluid with Show as Particles option on, then you will be able to use this option later on during recording playback to choose whether to display as particles or mesh the same way as if you were simulating. This is due to the fact that particles can be meshed at any time. It is, however, impossible to do the reverse (convert fluid mesh back to particles).

If you recorded your fluid with Show as Particles option off, you will only be able to play back the fluid as a mesh in the future. It is only beneficial to use this approach when there are too many particles and the resulting mesh will result in a smaller file size. Recording the particle mesh also has the benefit of speed during playback because particles don't have to be (re)meshed in the future.

Particle Flow fluid

You can use the Particle Flow Display Operator to mesh particles displayed using Particle Flow. Similarly to fluid volumes, it provides the Show as Particles option which can be used to switch between particle and mesh display of your fluid.

Multiple fluids in same mesh

Lucid provides a way to combine multiple fluids in a single mesh using the mesher object. In it you can select a combination of fluid volumes and Lucid Particle Flow fluid operators and have them be meshed together into one resulting object.

Meshing parameters

Lucid shares meshing parameters between the various fluid simulation types. These parameters allow you to control the granularity of meshing, if and how texture coordinates are generated, and other useful features. The most important of these is the Granularity parameter which determines the size of voxel samples used by our meshing algorithm. The smaller the value, the better and more detailed the mesh will be at the expense of processing speed and required memory. Learn more about these parameters in Lucid modifier documentation.

Motion blur

If motion blur is important for your simulation, it is advised to record it as particles (with Show as Particles option on) and use sub-sampling to generate the motion blur in your renderer. Rendering as particles allows generation of fluid mesh at sub-frame intervals later on, which in turn allows a renderer to compute the motion blur.

UV coordinates

Depending on your desired effect it may be necessary to have texture coordinates support in simulated fluid. For example, you may want a texture of glowing lava, or dirty mud superimposed on top of the fluid mesh. Lucid allows this through preservation or generation of texture coordinates in the fluid mesh. When using a fluid volume texture coordinates can be sampled from the original mesh and then mapped onto the resulting fluid mass. Alternatively, new texture coordinates can be generated based on the world space position of fluid particles in their initial state.

Go to attached video

Preserving fluid UV coordinates (Begin at 3:40)

Creating foam

To add realism to water and other low-viscosity fluids you can add simulated foam particles using Lucid's foam object. Once you set up the fluid, simply click the foam button on the Lucid toolbar or use Lucid main menu to do the same. A global foam object will be created which will generate extra particles every time fluid particles in the scene meet special criteria.

Foam particles are automatically destroyed and otherwise managed by Lucid. If you have multiple fluids in the scene foam particles will be generated for all of them. You can use the mesher object to add foam particles to a new fluid mesh, or use the built-in meshing capabilities of the foam object.

The global particle count displayed by the Flex settings helper takes the current number of foam particles into account.

Go to attached video

Simulating foam (Begin at 10sec)

Known limitations

Foam object takes some adjustments to look right and might not be useful for certain scenarios. For example, foam particles will penetrate both static and animated collision objects. They might not respect external scene forces the same way other Lucid objects do.


Simulating Cloth

  • Simulating Cloth
    • Overview
    • Creating cloth simulation
      • With Lucid toolbar
      • Manually
    • Fixing cloth vertices
    • Simulating tearing
    • Handling collisions
    • Note about resolution
    • Parameters
        • Stretch
        • Bend

Overview

Lucid has a number of basic and advanced options for simulating cloth to be used in a variety of situations. It is very easy to create basic simulations such as a waving flag or a table cloth but it is also possible to simulate garments and deforming clothing on a character. Destructive effects like tearing can also be added and either driven by internal forces within the cloth object or specified artistically through maps.

Creating cloth simulation

There are a number of ways to make a specific scene object act as cloth in Lucid simulation. You can use the Lucid toolbar or the main menu to quickly add cloth preset, or you can set up the Lucid modifier on your object manually. For batch setup of many cloth objects you can also use Particle Flow Geometry Operator to add objects with Cloth body type.

The mesh used for cloth simulation must be normalized and not contain invalid, isolated vertices. If your scene geometry consists of multiple non-connected meshes, each of the meshes will be simulated separately. For example, the 3ds Max teapot primitive will have its body, snout, and lid components simulated as three separate cloth objects.

With Lucid toolbar

  1. Select your object
  2. Click on the Cloth, preset in Lucid toolbar

Manually

  1. Select your object
  2. In the modifier stack add Lucid Modifier
  3. Set the Material Type to cloth

You are ready to simulate.

Fixing cloth vertices

In many scenarios it is important to have some part of the cloth geometry be attached to something inside the scene. For example, a waving flag will need to have some of its parts attached to the pole, a cape might be attached around a character's neck, and so on. The parts of the cloth mesh which are attached might be animated manually or connected to 3ds Max geometry which is deforming in some way.

Go to attached video

Fixing cloth vertices in place

Go to attached video

Animated cloth fixation (Begin at 55sec)

To specify which parts of the cloth are to be attached select the vertices of the cloth geometry passed into the Lucid modifier using an Edit Mesh or Mesh Select modifier. The selected vertices will not be simulated by Lucid and instead their positions will be used to constrain the movements of the rest of the mesh.

Simulating tearing

An important effect which can add realism to cloth simulations is tearing under stress. For example, you might create a simulation of a Hulk character growing in size and have the cloth be ripped apart as the body size changes. To simulate tearing simply change the Tearing parameter in Lucid modifier to above 0. The larger this value the easier it will be to tear cloth. Cloth will only tear in places where sufficient stretching is applied either due to its own weight or due to collisions with external objects. A value above 0.9 is typically needed to produce tears.

Go to attached video

Cloth tearing tutorial

Go to attached video

Controlling cloth tearing (Begin at 4:45)

You can also specify which parts of the cloth can tear easier than others by using a monochrome map. Simply add a map to the Cloth Tearing parameter. It will act as a multiplier to the aforementioned Tearing parameter.

Using the Split Decision, Left Count, and Right Count parameters you can disallow cloth vertices adjacent to each other from being torn. This can create realistic looking effects such as strands of cloth being left un-torn. Use the Select Torn Vertices parameter to make Lucid select the vertices which have undergone tearing. You can apply another modifier like Tessellate on top to further process these areas of the cloth.

Handling collisions

In most of the simple cases you should use static and convex collisions when possible since these will maximize performance of the simulation. However, if you are simulating cloth over a deforming character mesh you will need to use Signed Distance Field collision type on your character's mesh. Read about collision objects for more information on how to perform this setup.

Note about resolution

When using Lucid's cloth simulation a particle will be generated at each vertex of your cloth mesh. The size and number of particles have a big effect on the behavior of the overall simulated cloth. Therefore, as a part of your parameter adjustment process please take into consideration adjusting the detail of your source cloth mesh.

If you have denser topology in your cloth mesh then the number of particles and connections between them will grow. This will allow cloth to be become softer and bendier. It will also take more sub-steps to be able to preserve rigidity of the material so that parameter may need to be adjusted.

Parameters

Stretch

Controls how much the cloth is allowed to stretch. Bigger values will produce more rubbery results. Small values will make the cloth rigid and non-stretchable.

Bend

Controls how much the cloth is allowed to deform. Bigger values will make the cloth more rigid but enforcing more rigidity. Smaller values will make the cloth more soft and silk-like.


Simulating Gases

  • Simulating Gases
    • Videos

Videos

Go to attached video

Simulating a cloud (Begin at 4:55)


Simulating Hair

  • Simulating Hair
    • Overview
    • Videos
    • Controlling flexibility
    • Changing the per-strand particle count

Overview

Lucid provides a direct and easy way of simulating Ornatrix hair. Simply adding the Lucid Modifier on top of a hair or guides object will make the strands simulated within current Lucid scene. There is also an indirect way of simulating hair with Lucid by using cloth strips simulation.

Videos

Go to attached video

Introduction to hair simulation with Lucid and Ornatrix

Controlling flexibility

There are a number of ways of controlling how flexible or stiff the hair strands are:
  • Changing the resolution parameter in Flex Settings Helper will increase or decrease particle count per each strand. With fewer particles the strands will become more stiff. With more particles strands will be more bendy and flexible.
  • Changing the spacing between particles in the Lucid Modifier will control how well the strands bend.
  • Changing the Rigid Flexibility parameter in Lucid Modifier will adjust how much particles will be allowed to bend.
  • Increasing the Iterations and Sub-Steps parameters in Flex Settings Helper will make the strands more stiff due to additional integration done within the simulation

By balancing these parameters you can achieve the desired hair flexibility for both long and short hairs.

Changing the per-strand particle count

To be able to simulate hair strands Lucid creates particles along their length and chains these particles together. Each particle carries some mass so the more particles are generated in each strand the heavier it will behave. Also, constraints between each two particles allow freedom of motion. This means that the more particles there are the more bendy and flexible the strand will be.

As such, it is a good idea to simulate lighter hair that needs to keep it shape with fewer particles along the strand and longer heavier hair with more particles. To do this, use the Spacing parameter.

This parameter specifies the distance, in particle radii, between each two particles on the hair strand. By increasing the spacing you will push the particles apart. If the spacing becomes large enough then the number of particles will be limited by the Rigid Slice Count parameter. You can decrease this parameter to smallest value of 4 to get the minimum number of particles (4) on a strand.


Simulating Grains

  • Simulating Grains
    • Overview
    • Simulating grains

Overview

Simulating granular substances in Lucid is similar to simulating fluids. The only difference between liquids and grains is that grains do not use fluid constraints which causes particles to stick together and try to minimize surface area.

Simulating grains

Use the steps outlined in simulating fluids to create a particle volume or a Particle Flow operator set up. Then, in the fluid parameters, turn off the Fluid Constraints parameter. You are now simulating grains.

Go to attached video

Simulating sand (Begin at 0:10)


Particle Flow Fluid Operator

  • Particle Flow Fluid Operator
    • Videos
    • Overview
    • Adding fluid operator
    • Multiple fluid operators
    • Particle display
    • Parameters
        • Density
        • Default Radius
  • MaxScript access

Videos

Go to attached video

Basic Particle Flow Setup (Begin at 2:55)

Overview

In addition to simulating fluids using a fluid volume, you can use all of the power of Particle Flow to add fluids to the scene. Lucid provides a Particle Flow action operator which can be added to events to make particles in those events simulated using Lucid. You can add forces, display, other operators, and delete particles like you would normally in Particle Flow.

Multiple Lucid fluid operators can be added to multiple events to have multiple fluids emitters.

Adding fluid operator

To add Particle Flow Lucid fluid operator:

  1. Open particle view
  2. In depot area find Lucid Fluid operator
  3. Drag and drop it into your chosen Particle Flow event

Once you add the Lucid fluid operator particles will no longer move away from the icon emitter. This is normal. To make the particles move you need to start the simulation. It is recommended to use the Step simulation mode.

During simulation, regardless of the mode you choose, scrubbing the timeline will use time-locked simulation just as Particle Flow always does.

Multiple fluid operators

You can have multiple fluid operators within the same Particle Flow source object as long as they are each in their own event. This allows creating multiple fluid emitters each with their own density.

If there are multiple fluid operators within the same event only the one at the bottom of the list will be active.

Having fluid operators in multiple Particle Flow source objects is not supported.

Particle display

You can use standard Particle Flow display operators to show particles are meshes or geometry.

If you want to mesh the resulting particles you can use Lucid's Particle Flow display operator or mesher object.

If you want to display particles using Lucid's particle display use the display operator. Make sure to remove any other display operators present in the view. The particles can also be rendered this way.

Parameters

Density

Specifies how dense the particles will be. More density means more mass.

Default Radius

If radius is not manually set in a Flex settings helper and if there are no other objects in the scene which Lucid can use to automatically calculate particle size this value will be used to set the particle size.

MaxScript access

Fluid operator's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with fluid operators: Test_PFFluidOperator.ms


Flex Settings Helper

  • Flex Settings Helper
    • Summary
    • Inline help
    • Creating Flex settings helper
    • Flex Settings
      • Display
        • Show Simulation Stats
        • Show Viewport Icon
      • Scale
        • Resolution
        • Particle Radius
      • Collisions
        • Solid Rest %
        • Fluid Rest %
        • Dist. to Shapes %
        • Near Particles %
        • Near Shapes %
      • Simulation
        • Sub-Steps
        • Iterations
        • Maximum Particles
      • Maximum Particle Velocity
        • Automatic Maximum Particle Velocity
        • Maximum Particle Velocity Speed
      • Meshing
        • Anisotropy Scale
        • Minimum and Maximum Anisotropy
        • Smoothing
    • Flex Forces
      • Forces
        • Gravity
        • Wind
      • Physics
        • Dynamic Friction
        • Static Friction
        • Particle Friction
        • Adhesion
        • Cohesion
        • Viscosity
        • Drag
        • Lift
        • Plastic Threshold
        • Plastic Creep
        • Sleep threshold

Summary

Lucid uses NVidia Flex libraries to drive its simulations. Flex defines many of its properties as global settings that apply to all simulated objects and particle systems. Some parameters like density as well as structural properties can be specified on object, or even sub-object level, and the rest are specified globally.

Lucid exposes all of the global Flex settings in a 3dsmax helper object present inside each scene. If the helper object is never created default settings will be used instead. Detailed information about various parameters and settings can be found in Flex manual.

Inline help

If you hover over most of these parameters a tool-tip will appear giving you more information about that particular parameter. This is a great way to learn more about each Lucid setting on the spot.

Creating Flex settings helper

There are three ways to modify global Flex settings:
  1. Use the Lucid toolbar Select global Flex settings button. If the helper already exists in the scene it will be selected instead for convenience.
  2. Use 3dsmax Create panel Helpers, Lucid category and click the Flex Settings button to create the helper manually.
  3. Use LucidFlexSettings() MaxScript function in the listener or your custom script.

Flex Settings

Display

Show Simulation Stats

Turn this option on to display information about internal state of the simulation in the corner of the viewport. The information will only be displayed when the simulation is active.

  • First line of statistics shows the name of the video card used at the current CUDA device inside the simulation.
  • Memory line displays the video card RAM (VRAM) memory currently used and the amount of total memory available of the video card.
  • Particles line displays the total number of particles currently inside the simulation. This number includes any foam particles as well as rigid and soft bodies.

Go to attached video

Show simulation stats option @4:50

Show Viewport Icon

When this option is on a selectable 3d icon will be displayed inside the viewport to represent the current Flex settings helper.

Scale

Resolution

When Particle Radius parameter is 0 the value of this parameter will be used to automatically set particle radius based on the scale of currently simulated scene objects. Typically, the first object inside the simulation will be measured and its volume is divided by the value of Resolution to get the particle radius. Therefore, the bigger the resolution the smaller will be the particle radius.

For objects which are voxelized during particle generation, such as fluid volumes, rigids, and soft-bodies, the particle size also determines the number of particles generated for the object. Particles are generated to tightly fit together. Therefore, bigger Resolution values will result in more particles in the scene for these objects.

Particle Radius

If this value is 0, Resolution parameter is used to automatically determine particle radius from scene scale. However, setting this parameter to a non-zero value allows you to manually control simulated particle radius. All particles in Lucid simulation have the same radius and this value globally controls this value.

Use larger radius values to simplify, speed up, and improve stability of the simulation at the expense of fewer details. Use smaller values to improve simulation detail at the expense of overall speed.

Collisions

Solid Rest %

This value sets the percentage of particle radius which will be used as a buffer for determining collisions between particles in rigid body (non-fluid) objects. For example, a value of 10% and particle radius of 1 will mean that all particles will not be allowed closer than 0.1 unit to any rigid and soft body in the scene.

Fluid Rest %

Similar to Solid Rest parameter, this value determines the percentage of particle radius that any two fluid particles are allowed to be near to one another. It is important that this value is sufficiently high to ensure simulation stability.

Dist. to Shapes %

Similar to Solid Rest parameter, this value determines the percentage of particle radius that any particle is allowed to be to any collision objects. Increase this value to improve simulation stability. If you reduce this value too much you can risk tunneling effects where particles can penetrate collision objects.

Near Particles %

Increases the radius used during neighbor finding, this is useful if particles are expected to move significantly during a single step to ensure contacts aren't missed on subsequent iterations.

Near Shapes %

Same as Near Particles % parameters but the margin is applied to collision objects instead of particles.

Simulation

Sub-Steps

Determines the number of simulation steps to compute for each frame in the scene. A bigger value here will improve simulation stability and collision results. It can also help remove any tunneling effects of particles. More sub-steps also mean that the overall simulation performance will be slower.

Iterations

Specifies the number of times the scene is evolved at each simulation step. Increasing this value can improve simulation stability.

Maximum Particles

Sets the manual hard limit for the number of allowed particles in the scene. NVidia Flex can cause a video driver crash or reset if it runs out of memory when too many particles are generated. This may depend on your video card and memory size. Therefore, this value acts as a fail-safe to prevent such errors before they happen. If number of particles generated in a simulation exceeds this limit the simulation will stop. Increase this value at your own risk and discretion.

Maximum Particle Velocity

Automatic Maximum Particle Velocity

To improve simulation stability Lucid can limit the maximum speed of particles in the scene. This ensures that any particles undergoing extreme forces will not undermine precision of the simulation. If this option is on the maximum speed at which particles are allowed to travel will be determined on the scene scale and frame sub-step values.

Maximum Particle Velocity Speed

If Automatic Max. Particle Velocity option is off this value will be used to set the maximum speed at which particles are allowed to travel in the scene. Increase this value to make the simulation less bounded at the expense of added instability risks.

Meshing

Anisotropy Scale

Due to particle motion having a direction Lucid can improve meshing by storing information about the particle movement during simulation. This extra information provides better resulting particle mesh. This option controls how much anisotropy is present in resulting ellipsoids for rendering, if zero then anisotropy will not be calculated.

Minimum and Maximum Anisotropy

Clamp the anisotropy scale to this fraction of the radius

Smoothing

Control the strength of Laplacian smoothing in particles for rendering, if zero then smoothed positions will not be calculated.

Flex Forces

These set of parameters determine the intrinsic forces between particles and their environment in the simulation.

Forces

Specifies default gravity and wind forces. If you wish to add more custom forces see the documentation on adding forces.

Gravity

A default gravity force is applied to all particles. You can change the direction and strength of this default gravity using this parameter. Setting it to 0 will remove the default gravity.

Wind

A wind force can be applied to all particles. You can change the direction and strength of this default wind using this parameter. Setting it to 0 will remove the wind.

Physics

Dynamic Friction

Coefficient of friction used when colliding against shapes. Dynamic friction slows down particles while they are moving against a surface of an object.

Static Friction

Coefficient of static friction used when colliding against shapes. Static friction tries to prevent movement of particles when they are still against a surface of an object.

Particle Friction

Coefficient of friction used when colliding particles.

Adhesion

Controls how strongly particles stick to surfaces they hit, default 0.0.

Cohesion

Control how strongly particles hold each other together, default: 0.025

Viscosity

Smoothes particle velocities using XSPH viscosity.

Drag

Drag force applied to particles belonging to dynamic triangles, proportional to velocity^2*area in the negative velocity direction.

Lift

Lift force applied to particles belonging to dynamic triangles, proportional to velocity^2*area in the direction perpendicular to velocity and (if possible), parallel to the plane normal.

Plastic Threshold

Particles belonging to rigid shapes that move with a position delta magnitude > threshold will be permanently deformed in the rest pose.

Go to attached video

Using Plastic Threshold and Plastic Creep parameters to simulate denting (Begin at 6:40)

Plastic Creep

Controls the rate at which particles in the rest pose are deformed for particles passing the deformation threshold.

Sleep threshold

Particles with a velocity magnitude less than this threshold will be considered fixed.


End User License Agreement

End-User License Agreement For Lucid Plugin For Autodesk 3dsmax

  • End-User License Agreement For Lucid Plugin For Autodesk 3dsmax
    • 1. GRANT OF LICENSE.
    • 2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.
    • 3. TERMINATION
    • 4. COPYRIGHT
    • 5. NO WARRANTIES
    • 6. LIMITATION OF LIABILITY

IMPORTANT PLEASE READ THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT CAREFULLY BEFORE CONTINUING WITH THIS PROGRAM INSTALL:

Ephere's End-User License Agreement ("EULA") is a legal agreement between you (either an individual or a single entity) and Ephere Inc. for the Ephere software product(s) identified above which may include associated software components, media, printed materials, and "online" or electronic documentation ("SOFTWARE PRODUCT"). By installing, copying, or otherwise using the SOFTWARE PRODUCT, you agree to be bound by the terms of this EULA. This license agreement represents the entire agreement concerning the program between you and Ephere, (referred to as "licenser"), and it supersedes any prior proposal, representation, or understanding between the parties. If you do not agree to the terms of this EULA, do not install or use the SOFTWARE PRODUCT.

The SOFTWARE PRODUCT is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The SOFTWARE PRODUCT is licensed, not sold.

1. GRANT OF LICENSE.

The SOFTWARE PRODUCT is licensed as follows:

  1. Installation and Use.
    Ephere grants you the right to install and use copies of the SOFTWARE PRODUCT on your computer running a validly licensed copy of the operating system for which the SOFTWARE PRODUCT was designed [e.g., Windows 95, Windows NT, Windows 98, Windows 2000, Windows 2003, Windows XP, Windows ME, Windows Vista, Windows 7, Windows 8].
  2. Backup Copies.
    You may also make copies of the SOFTWARE PRODUCT as may be necessary for backup and archival purposes.

2. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS.

  1. Maintenance of Copyright Notices.
    You must not remove or alter any copyright notices on any and all copies of the SOFTWARE PRODUCT.
  2. Distribution.
    You may not distribute registered copies of the SOFTWARE PRODUCT to third parties. Evaluation versions available for download from Ephere's websites may be freely distributed.
  3. Prohibition on Reverse Engineering, Decompilation, and Disassembly.
    You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation.
  4. Rental.
    You may not rent, lease, or lend the SOFTWARE PRODUCT.
  5. Support Services.
    Ephere may provide you with support services related to the SOFTWARE PRODUCT ("Support Services"). Any supplemental software code provided to you as part of the Support Services shall be considered part of the SOFTWARE PRODUCT and subject to the terms and conditions of this EULA.
  6. Compliance with Applicable Laws.
    You must comply with all applicable laws regarding use of the SOFTWARE PRODUCT.

3. TERMINATION

Without prejudice to any other rights, Ephere may terminate this EULA if you fail to comply with the terms and conditions of this EULA. In such event, you must destroy all copies of the SOFTWARE PRODUCT in your possession.

4. COPYRIGHT

All title, including but not limited to copyrights, in and to the SOFTWARE PRODUCT and any copies thereof are owned by Ephere or its suppliers. All title and intellectual property rights in and to the content which may be accessed through use of the SOFTWARE PRODUCT is the property of the respective content owner and may be protected by applicable copyright or other intellectual property laws and treaties. This EULA grants you no rights to use such content. All rights not expressly granted are reserved by Ephere.

5. NO WARRANTIES

Ephere expressly disclaims any warranty for the SOFTWARE PRODUCT. The SOFTWARE PRODUCT is provided 'As Is' without any express or implied warranty of any kind, including but not limited to any warranties of merchantability, noninfringement, or fitness of a particular purpose. Ephere does not warrant or assume responsibility for the accuracy or completeness of any information, text, graphics, links or other items contained within the SOFTWARE PRODUCT. Ephere makes no warranties respecting any harm that may be caused by the transmission of a computer virus, worm, time bomb, logic bomb, or other such computer program. Ephere further expressly disclaims any warranty or representation to Authorized Users or to any third party.

6. LIMITATION OF LIABILITY

In no event shall Ephere be liable for any damages (including, without limitation, lost profits, business interruption, or lost information) rising out of 'Authorized Users' use of or inability to use the SOFTWARE PRODUCT, even if Ephere has been advised of the possibility of such damages. In no event will Ephere be liable for loss of data or for indirect, special, incidental, consequential (including lost profit), or other damages based in contract, tort or otherwise. Ephere shall have no liability with respect to the content of the SOFTWARE PRODUCT or any part thereof, including but not limited to errors or omissions contained therein, libel, infringements of rights of publicity, privacy, trademark rights, business interruption, personal injury, loss of privacy, moral rights or the disclosure of confidential information.


Foam Object

  • Foam Object
    • Videos
    • Overview
    • Creating Foam object
    • Known limitations
  • MaxScript access

Videos

Go to attached video

Overview

Lucid Foam object, when present inside the scene, will generate foam particles for all liquids currently inside the simulation. You can control the particle limit as well as the behavior of the foam particles through the object's parameters. You can also show the foam as particles or mesh inside the scene. Foam particles will be recorded during simulation recording mode.

Creating Foam object

There are four ways to create Lucid foam object:

  • Use the Foam Object button on the Lucid toolbar
  • Use the Create Foam Object option in the Lucid main menu
  • Inside 3dsmax Create Panel browse to Objects, Lucid category, and find the Lucid Foam button. Use it to create the foam object manually.
  • Use LucidSelectFoamObject true command in MaxScript listener or your custom script

Known limitations

  • Foam object will not respect external collision objects. It will only collide with the global sandbox collider.
  • Foam object might not always respect external forces. It will, however, react with built-in gravity and wind forces specified in the Flex settings helper.
  • Parameters for specifying foam can be tricky to adjust and get right.

MaxScript access

Foam object's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with foam objects: Test_FoamObject.ms


Global Settings

  • Global Settings
    • Overview
    • Global settings dialog
    • Settings

Overview

Some settings in Lucid do not depend on a specific scene. These properties can be set globally and are specified using the Lucid dialog or through MaxScript.

Global settings dialog

Go to attached video

Global Settings dialog @20sec

To open the settings dialog use one of these options:
  • Click the settings button on Lucid toolbar
  • Type in LucidShowGlobalSettings() in MaxScript listener.

Inside the dialog you will find information about the current build including its version and whether it is a full commercial build or a demo trial.

Settings

You can also use the drop-down list to specify which back-end library you would like to use for Lucid simulation. Choose CUDA for faster results if you have a CUDA Computer 3+ compatible GPU. Choose Direct 3D for all other GPUs, including older NVidia graphics cards.

Please note that you will need to restart 3dsmax for the changes to take effect.


Controlling Lucid from MaxScript

It is possible to control Lucid entirely from MaxScript using its built-in functions. The following functions are available:

-- Starts Lucid "sandbox" simulation mode
LucidStart()

-- Step Lucid simulation by one frame. LucidStart() should have been called prior to this.
LucidStep()

-- Stops Lucid "sandbox" simulation mode
LucidStop()

-- Determines whether Lucid "sandbox" simulation is started
[bool] IsStarted()

-- Starts and plays Lucid in Sandbox simulation mode
LucidPlay()

-- Sets global Lucid parameter as a floating point value
SetGlobalParameterFloat [string parameterName] [float value]

-- Sets global Lucid parameter as integer
SetGlobalParameterInt [string parameterName] [int value]

-- Resets all global Lucid parameters
ClearGlobalParameters()

-- Adds currently selected nodes to Lucid simulation using the specified preset index (which is an integer value from 0 to 12)
AddToSimulation [int presetIndex]

-- Gets the version of Lucid plugin as either a string (0) or integer (1)
GetVersion [int which]

Sample code

Sample code can be found in MaxScript access documentation sections for each Lucid object, operator, and helper.

There is also global sample code which tests Lucid: Test_LucidHost.ms


Animating Physics Material Types

  • Animating Physics Material Types
    • Overview
    • Animating body type

Overview

Body types in Lucid define how a simulated object with behave. Non-collision body types can be cloth, inflated, fluid, rigid, and soft. Depending on the chosen body type object will be broken down into particle lattices connected in various ways. For example, a cloth and inflated object will have one particle per each vertex in the object and a fluid object will have particles which fill the whole volume of the object.

Lucid allows the body type of an object to change during simulation. For example, an object can start off as a fluid and then switch to a solid mid-way through the simulation. This allows to simulate effects such as instant freezing, melting, and more exotic effects like turning a fluid volume into a cloth.

Animating body type

To animate the body type simply set 3ds Max auto-key option on and change the body drop-down value in the Lucid modifier. Once you have changed the body type, it is important to modify the interpolation type of the created keys to step instead of linear or Bezier. This will ensure that the type will be changed directly to the value you specify instead of going over all the types in between during intermediate keyframes.

Go to attached video

Animating material type @10:12


Adding Forces

  • Adding Forces
    • Videos
    • Overview
    • Adding forces
    • Particle Flow forces

Videos

Go to attached video

Adding spacewarp forces

Overview

You can use any 3dsmax spacewarp or force field to affect objects simulated by Lucid. Particle Flow forces can also be used to drive particles generated with Particle Flow operator. Simply bind space-warps to Lucid objects to add their effect to the simulation.

Adding forces

To add a force to a scene object containing a Lucid modifier simply use 3dsmax's spacewarp binding functionality to add the force fields as World Space Modifiers into the modifier stack.

During subsequent simulations the forces will affect Lucid objects to which they were bound. You might need to adjust the force value to increase or decrease its effect in the simulation.

Particle Flow forces

When using Lucid's Particle Flow Fluid Operator or Particle Flow Geometry Operator the forces present inside the Particle Flow event are automatically applied inside a Lucid simulation.


Attachment Helper

  • Attachment Helper
    • Videos
    • Overview
    • Creating an attachment
    • Parameters
        • Enabled
      • Scale
        • Radius
      • Spring
      • Time Range
  • MaxScript access

Videos

Go to attached video

Attachment object intro (Begin at 0:10)

Overview

Attachment acts as glue or stitches which can hold multiple objects simulated by Lucid together. It defines a volume within which Lucid particles belonging to two objects are bound together using spring constraints. This forces the two objects to stay attached to each other during the simulation. You can visualize the points of attachment inside the viewport.

Creating an attachment

To create an attachment helper go to 3dsmax Create panel, Helpers, and choose Lucid category. Click on Lucid Attachment button and then click inside the viewport to create the helper. Dragging will determine the volume which will be attached.

Objects which are simulated by Lucid (have Lucid modifier applied or created with Particle Flow geometry operator) that fall within the attachment volume will be attached to one another.

Parameters

Enabled

Turns the attachment on or off. When it is off it will be ignored during simulation.

Scale

Radius

Specifies the size of the attachment volume.

Spring

Specifies the amount of force used to keep the attached objects together. A value of 1 is default.

Time Range

Controls the valid time range of the attachment object, which is the same as parameter in Lucid modifier.

MaxScript access

Attachment helper's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with attachment helpers: Test_AttachmentHelper.ms


Collision Objects

  • Collision Objects
    • Overview
    • The global sandbox
    • Static collision objects
      • Sandbox collider
      • Static mesh collider
    • Animated collision objects
      • Convex collider
      • Signed distance fields (SDF)

Overview

Collision objects are external meshes which are not modified by Lucid simulation but do interact with objects that are inside the simulation. For example, a ground onto which a ball falls, or an animated character mesh which wears a cloth simulated by Lucid are collision objects. Other examples may include walls, terrain, and animated moving parts which are independent of Lucid.

There are two types of collision objects in Lucid: static and animated.
  • Static collision objects do not move over time, they are always still. These can be, for example, a floor, earth, a building, or a wall.
  • Animated collision objects can move over time due to key-frame animation in 3dsmax. For example, these can be an animated character, or a door opening.

The global sandbox

To preserve the stability of simulation every scene has a default global "sandbox" volume. If any of the simulated particles try to venture beyond its limits they will be stopped by this volume. The default size of this object is 10,000 scene units.

If you create a sandbox collider object described below, it will override the default sandbox volume. Therefore, you can increase or decrease the size of the overall simulation scene by defining your own sandbox collider.

Static collision objects

Sandbox collider

There is a special collision object in Lucid which is very robust during simulation. It defines a box inside which all of the simulation must happen and does not allow objects to escape this box. We call this type of a collider a "sandbox".

To create a sandbox collider first create a Box object inside 3dsmax, then add a Normal modifier above it, then add Lucid Modifier above and set the type to be "Collision". In this case the box will become the sandbox. There can only be one sandbox in the scene at a time.

Static mesh collider

Any mesh within the scene can be used for static collisions. To make the mesh a static collider in Lucid simulations you need to add a Lucid modifier to it and set the Material Type parameter to static.

A quick way to make a mesh inside 3dsmax a static collider is to select it and use the Static Collision preset in the Lucid toolbar.

Animated collision objects

Convex collider

If you have a mesh which is not deforming over time but instead is animated to move and rotate inside the scene using convex collisions is the best strategy. If your mesh is not convex then Lucid can use a segmentation algorithm to break it down into a set of convex meshes internally. Otherwise, using the default settings, the mesh will be converted to a convex hull at the beginning of the simulation. Meshes can have key-frame animated transformation.

To add a convex collider add Lucid modifier to your object and set its material type to Convex. Alternatively, use the Animated Collision preset button inside the Lucid toolbar to make selected scene objects convex colliders.

Go to attached video

Convex mesh segmentation (Begin at 6:45)

Signed distance fields (SDF)

  • Only way to collide with deforming meshes
  • Can be used for non-deforming meshes too
  • Can slows down simulation significantly

Image courtesy of Mads DrÃ¸schler

If you have a mesh which is deforming over time (its vertices are animated through skinning, for example) Signed Distance Field is the only way to make them part of the simulation. Add a Lucid modifier on top of the animated mesh's modifier stack and set the material type to SDF. There are a number of parameters you can control to improve the precision of collisions generated this way.

Go to attached video

Deforming collision objects (Begin at 4:30)

Alternatively you can use this approach for deforming collision geometry:

  1. Collapse all of the deforming meshes into a single object
  2. Use point cache to add animation to the collapsed objects
  3. Use the Lucid modifier with SDF material type on the collapsed object

Image courtesy of Mads DrÃ¸schler


Mesher Object

  • Mesher Object
    • Video
    • Overview
    • Parameters
      • Display
        • Show Viewport Icon
        • Hide All
        • Show All
        • Meshed Objects list
      • Fluid Settings
  • MaxScript access

Video

Go to attached video

Mesher tutorial

Overview

Mesher object can be added to a scene to generate a fluid mesh from one or more Lucid objects. Parameters of the resulting mesh can be adjusted such as granularity and texture coordinate generation. Convenient methods to show and hide objects meshed by the mesher allow for quick display management.

Use mesher object to combine multiple Lucid fluid volumes and Particle Flow operators into one mesh.

Parameters

Display

Show Viewport Icon

Turn this option on or off to show or hide a selectable viewport representation icon for the mesher. It is there for convenience when you need to select the mesher.

Hide All

Hides all objects which are currently being meshes in viewport. This is useful when you just want to see the resulting mesh and not the particles that make it up. Note that this will not hide any Particle Flow particles. For that you need to manually turn off the display operators in each Particle Flow event where Lucid is used.

Show All

Does the opposite of the Hide All action above.

Meshed Objects list

Allows to add, remove, and manage particles which are a part of the resulting fluid mesh. You can add the objects by individually picking them inside the viewport, or use the Add Multiple button to select the objects from a list.

Fluid Settings

These settings control meshing the fluid. They are the same as fluid meshing options in the Lucid modifier.

MaxScript access

Mesher object's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with mesher objects: Test_MesherObject.ms


Managing Simulated Objects

  • Managing Simulated Objects
    • Videos
    • Overview

Videos

Go to attached video

Setting object time range

Go to attached video

Preserving initial state (Begin at 0:16)

Overview

After adding scene objects into simulation you can further adjust how these objects will be simulated. You can control when the objects will start and finish simulating and also specify the state in which they will begin simulating.


Minimum System Requirements

Video Card

Lucid Physics uses NVidia Flex to drive its dynamics. There are two modes in which Flex can be run: CUDA and Direct 3D. Use the Global Settings dialog to specify these modes. If you have a video card with CUDA Compute Capability 3 or newer is installed you can use the CUDA mode. To check whether your video card supports this capability please check the video card comparison table.

For older and non-NVidia video cards use the Direct 3D mode.

Software

Lucid Physics works with 3dsmax versions 2009 and newer. Both 32 and 64 bit operating systems are supported.

You might need to install the latest CUDA driver on your computer. To ensure that your system is compatible you can also try running NVidia Flex demos .


Particle Flow Display Operator

  • Particle Flow Display Operator
    • Videos
    • Overview
    • Adding display operator
    • Display Parameters
        • Show as Particles
        • Renderable
    • Fluid Settings
  • MaxScript access

Videos

Go to attached video

Particle Flow display operator (Begin at 6:05)

Overview

When using the fluid and geometry operators to simulate Lucid particles using Particle Flow this operator allows visualizing the changes and meshing the particles on a per-event basis. Just as in Lucid modifier, you can switch between the particle display and mesh display and modify the meshing settings. Add this operator into an event and replace the existing display operator.

Adding display operator

To add display operator to an event containing a fluid or geometry operator:

  1. Open particle view
  2. Find Lucid Display item in the depot list
  3. Drag it into the event. Replace existing display operator if needed.

Display Parameters

Show as Particles

Turn on to use particle display and off to mesh the particles using Lucid's fluid meshing algorithm.

Renderable

When true the resulting particles or their mesh will also be present during rendering.

Fluid Settings

Provides options to control fluid meshing when Show as Particles option is off. See Lucid modifier documentation for more details.

Fluid settings will have no effect when using this operator with a geometry operator. In this case the display operator can only be used for particle display.

MaxScript access

Display operator's parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with display operators: Test_PFDisplayOperator.ms


Particle Display

  • Particle Display
    • Overview
    • Meshing
    • Displaying as particles
    • Rendering particles

Overview

Most objects simulated with Lucid are internally represented as particles. This applies to all geometry except for external collision objects which are not represented as particles. There are two ways of seeing the simulated objects in viewport and in render: either as a mesh or as particles which are used for simulating the object. When simulating fluids or grains, for example, it makes sense to show them as particles. As such this option is used by default. When showing other object types like solids or soft bodies, it makes more sense to show them as the final meshes.

Meshing

  • Skinning is used to convert internal particle representation used by Lucid for simulation back to original scene geometry. Parameters for the skinning can be adjusted in the Lucid modifier and Particle Flow Geometry Operator. This is used in soft, rigid, and inflated body types.
  • Fluid meshing is used to convert particles into a fluid mesh using a marching ant-based algorithm. Parameters to control fluid meshing can be adjusted in the Lucid modifier, Particle Flow Display Operator, Foam Object, and the Mesher Object.

Displaying as particles

If you use the Show as Particles option, a special optimized particle geometry will be used to display your object in the scene. This geometry supports texture mapping and can be rendered. The radius of the particles in the geometry directly reflects the particle radii used in the simulation.

Note: Particle display is supported in 3dsmax 2015 and newer. In previous versions particles are displayed as ticks, due to legacy viewport display code.

Rendering particles

Regardless of the 3dsmax version you use if you render your scene containing Lucid particle objects these objects will render out their particles as meshes. The meshes do have UV coordinates assigned and can have any 3dsmax material assigned to them. However, the radius of the particles does need to be set before the simulation starts as it will be baked during the simulation recording.


Lucid Toolbar

  • Lucid Toolbar
    • Overview
    • Availability
    • Functionality
      • Toggle Lucid Physics
      • Record Toggle
      • Add Selected Objects To Simulation
      • Show Lucid Flex Settings
      • Show Global Lucid Settings
      • Add and Show Foam Object
      • Add and Select Global Sandbox Collision Object
    • Adding and Removing Toolbar from MaxScript
    • Troubleshooting
      • Manually installing the toolbar
      • Uninstalling the toolbar manually

Overview

Lucid toolbar is a strip of buttons which can be found in 3dsmax's main toolbar. It provides quick access to most of Lucid's functionality and significantly simplifies set up and workflow inside the scene.

To show or hide the toolbar, right click on main toolbar and select the Lucid option.
Lucid toolbar context menu

Availability

Lucid toolbar is supported in 3dsmax 2013 and newer.

Functionality

Toggle Lucid Physics

This button starts and stops Lucid simulation. If you hold down this button, a drop-down will appear and allow you to select which real-time simulation modes to use:
  1. Incremental
  2. Locked
  3. Live

A detailed description of these options is available in real time simulation modes documentation.

Record Toggle

This button starts or stops baking simulation of all objects in the scene.

Add Selected Objects To Simulation

This button adds currently selected scene objects to Lucid simulation with predefined settings based on the preset you choose.

  • Click this button after selecting one or more geometries within the scene to add them to the simulation. The selected objects will have Lucid modifier added to their modifier stack.
  • Hold down this button to get a flyout of available presets which you can apply to the object.
  • If selected object(s) already have Lucid modifier applied to them it will be updated with the settings from the selected preset.

Show Lucid Flex Settings

Creates or selects existing global Flex settings helper object inside the scene. Useful for quick access to simulation settings when you don't want to look for the helper object using 3dsmax selection tools.

Show Global Lucid Settings

Brings up the global settings dialog containing information about Lucid build and options which are scene-independent.

Add and Show Foam Object

Creates or selects existing foam object inside the scene.

Add and Select Global Sandbox Collision Object

Creates or selects a sandbox collision object inside current scene.

Adding and Removing Toolbar from MaxScript

Lucid toolbar is added during the main installation, and removed during uninstall. However, if you wish to manually add or remove the toolbar afterwards you can also do that. This may be needed if you copied Lucid files manually, for example, without using the installer.

Use the following commands in MaxScript listener to add and remove Lucid toolbar:

-- Adds Lucid toolbar to 3ds Max
LucidAddToolbar()

-- Remove Lucid toolbar from 3ds Max
LucidRemoveToolbar()

If the toolbar is not removed after calling LucidRemoveToolbar(), restart 3ds Max and type the command again.

Troubleshooting

Manually installing the toolbar

If Lucid toolbar isn't present in your 3dsmax after installation and you want to try and manually add it in, please use the following steps:
  1. Locate the 3dsmax Workspaces directory. It will typically be something like C:\Users\USERNAME\AppData\Local\Autodesk\3dsMax\20XX - 64bit\ENU\en-US\UI\Workspaces
  2. Inside this directory there are a number of *.cuix files. Note that there is also a usersave directory there, also containing *.cuix files.
  3. Open usersave/Workspace1_usersave__.cuix_ file and scroll to the bottom until you see something like:
        </Window>
</CUIWindows>
  4. Right before the </Window> text insert the following text:
        <Window name="Lucid" type="T" rank="0" subRank="1" hidden="0" dPanel="1" tabbed="0" curTab="-1" cType="1" toolbarRows="1" toolbarType="3">
        <FRect left="1241" top="179" right="1993" bottom="245" />
        <DRect left="1427" top="53" right="1632" bottom="92" />
        <DRectPref left="2147483647" top="2147483647" right="-2147483648" bottom="-2147483648" />
        <CurPos left="1427" top="53" right="1632" bottom="92" floating="0" panelID="1" />
        <Items>
            <Item typeID="1" type="CTB_CHECKBUTTON" controlID="1001" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="0">
                <FlyOffCt flyInit="0" flyTimeout="300" flyDir="3">
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="0" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="16" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="17" />
                </FlyOffCt>
            </Item>
            <Item typeID="1" type="CTB_CHECKBUTTON" controlID="1003" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="2" />
            <Item typeID="0" type="CTB_PUSHBUTTON" controlID="1004" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="11">
                <FlyOffCt flyInit="8" flyTimeout="300" flyDir="3">
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="3" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="4" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="5" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="6" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="7" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="8" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="9" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="10" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="11" />
                    <Fly outEnabled="-1" inEnabled="-1" outDisabled="-1" inDisabled="1" iconFilePrefix="Lucid" iconImageIndex="12" />
                </FlyOffCt>
            </Item>
            <Item typeID="1" type="CTB_CHECKBUTTON" controlID="1002" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="1" />
            <Item typeID="0" type="CTB_PUSHBUTTON" controlID="1005" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="13" />
            <Item typeID="0" type="CTB_PUSHBUTTON" controlID="1006" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="14" />
            <Item typeID="0" type="CTB_PUSHBUTTON" controlID="1007" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="15" />
            <Item typeID="0" type="CTB_PUSHBUTTON" controlID="1008" helpID="0" orientation="31" outEnabledIndex="-1" outDisabledIndex="-1" inDisabledIndex="-1" captionVisibility="0" iconFilePrefix="Lucid" iconImageIndex="18" />
        </Items>
    </Window>
  5. If you want "complete" installation of the toolbar so that it persists even when you reset the UI inside 3dsmax, perform the above step for all *.cuix files in the installation.

Uninstalling the toolbar manually

Perform the steps above in reverse order, removing the Lucid toolbar text from *.cuix files instead of adding it.


Lucid in a Nutshell

  • Lucid in a Nutshell
    • Lucid Multiphysics
    • Getting started
    • Questions and comments

Lucid Multiphysics

Lucid is a plugin for Autodesk 3dsmaxâ€Ž which adds functionality for physically simulating fluids, grains, cloth, soft, rigid objects. One of the biggest features of Lucid is its simplicity in operation and close integration within 3dsmax. It also provides unprecedented simulation speeds due to a fully GPU-based solver based on NVidia Flex technology.

We have developed Lucid with a big focus on usability. As a result, it combines a user-friendly interface with ability to create complex simulations that are easy to configure and manage. Using a core set of tools like the Lucid modifier and a set of Particle Flow operators you can quickly populate your existing scenes with dynamics effects ranging from gases and liquids to metals and rubbery substances. Additional tools help attach things together, display the guts of the simulation, and incorporate 3dsmax built-in forces and operators.

Getting started

There are a number of resources which can help you get up and running with Lucid. Download a demo version if you do not yet own a license and install to open up the world of quick and easy simulation.

Go through a few introductory tutorials in our YouTube playlist. There are many tutorials there covering most of the functionality. However, if you need more reference browse this documentation further to get all of the information you need:

  • Real-time Simulation Modes describes how to start simulations in different ways with lucid.
  • It is a good idea to start off with simulating fluids and cloth. The process of setup for these simulations is similar for other object types.
  • Learn how to add external forces into the simulation using 3ds Max's spacewarps and how to record the results inside your scene.
  • Finally, you can try more advanced simulations which are covered in the Working with Particle Flow section.

Go to attached video

Basic introduction tutorial

Questions and comments

If you have any questions, feel free to contact us directly or through our forums and join our Facebook community.


Installation

  • Installation
    • Verifying Installation
    • Licensing
      • License Server IP
    • Diagnosing Installation Problems
    • Silent Installation

Verifying Installation

Upon successful installation the following files should be present:

  • <3dsmax>/Ephere.Plugins.Lucid.dll
  • <3dsmax>/Ephere.Plugins.Lucid.FlexAdapterCuda.dll
  • <3dsmax>/Ephere.Plugins.Lucid.FlexAdapterD3D.dll
  • <3dsmax>/Ephere.Plugins.Autodesk.Max.Lucid.Authorizer.dll (in non-demo version only)
  • <3dsmax>/NvFlexDeviceRelease_x64.dll
  • <3dsmax>/NvFlexExtReleaseCUDA_x64.dll
  • <3dsmax>/NvFlexExtReleaseD3D_x64.dll
  • <3dsmax>/NvFlexReleaseCUDA_x64.dll
  • <3dsmax>/NvFlexReleaseD3D_x64.dll
  • <3dsmax>/plugins/Ephere.Plugins.Autodesk.Max.Lucid.dlo (this directory could be different if you changed it during setup process)
  • <3dsmax>/scripts/LucidUI.ms
  • <3dsmax>/UI_ln/Icons/Lucid*.bmp (a total of 12 icons)

If not all of these files are present please try to reinstall lucid with logging enabled, read below how.

Licensing

When starting Lucid for the first time you will be presented with a dialog box containing a button to assign the license. Simply click this button and, if internet connection is successful, the license server will be automatically installed and started.

If you have a license server installed on another computer you can enter its IP address and press Connect.

License Server IP

During authorization, if a license server is not detected on localhost computer, you will be asked to enter the IP of the license server to which to connect. This IP is stored in the following file for future reference:
  • On Windows: C:\Users\USERNAME\AppData\Local\Lucid3dsmaxLicenseServerIP.txt

You can change the directory where this file is stored by setting the LUCID3DSMAX_LICENSE_SERVER_IP_PATH environment variable to another directory.

Diagnosing Installation Problems

If you run into problems during installation please help us diagnose and solve your problem by following these steps.

  1. Go to the directory where the install MSI file is located
  2. Open Windows command prompt using Windows Key -> "cmd"
  3. Type cd INSTALLER_DIRECTORY to go to the directory of your installer
  4. Use the following command to run the installer which generates a log file:
    start msiexec /i InstallerFileName.msi /l*v Install.log

    Note: Change the "InstallerFileName" to the name of Lucid's installer file
  5. After installation a file "Install.log" will be generated
  6. Please send it to us for analysis

Silent Installation

Lucid uses MSI packages for deployment and installation.

Use the /quiet or /qn options with msiexec to perform a silent install.
  • Properties with name MAX_INSTALL_PATH_20XX can be used to specify the desired install locations for various 3dsmax versions.
  • Properties with name ENABLE_MAX_20XX can be used to disable installing Lucid for specific 3dsmax version. By default all 3dsmax versions present on the computer will be targeted, so one needs to exclude the versions not to target.

For example, this command installs Lucid for 3dsmax 2016 but not for 3dsmax 2014 with no UI and no reboot, with a log:

msiexec /i c:\path\to\ornatrix.setup.msi /quiet /qn /norestart /log c:\path\to\install.log MAX_INSTALL_PATH_2016="C:\Program Files\Autodesk\3ds Max 2016" ENABLE_MAX_2014=0


Lucid Main Menu

  • Lucid Main Menu
    • Overview
    • Troubleshooting
      • The Lucid menu isn't present in 3dsmax main menu bar

Overview

Lucid menu gives access to all of Lucid's functionality in one place of 3dsmax GUI. It can be removed or added to other places in 3dsmax such as quad menus.

Lucid menu is available by default as a part of 3dsmax's main menu. You can also access it via the Customize User Interface dialog.

The options in Lucid menu mirror those available in Lucid toolbar. It is designed to provide an alternative point of access to Lucid's features for all versions of 3dsmax since Lucid toolbar is only supported in 3dsmax 2013 and newer.

Troubleshooting

The Lucid menu isn't present in 3dsmax main menu bar

  1. In MaxScript Listener type LucidCreateMainMenu and press Enter.
  2. If you get undefined printed at the next line you could have an installation problem. Please make sure files are installed correctly.
  3. If you get LucidCreateMainMenu() printed at the next line, continue to next step.
  4. In the Main Menu -> Customize -> Customize User Interface dialog, go to Menus tab and press Reset button at the bottom right. Note: This will clear out all non-default 3dsmax menus, so use with caution!
  5. Restart 3dsmax or In MaxScript Listener type LucidCreateMainMenu() and press Enter to get the Lucid menu back.


Lucid Modifier

  • Lucid Modifier
    • Overview
    • Inline help
    • Adding Lucid Modifier
    • Particle meshing
    • Parameters
        • Preset
        • Body Type
        • Enabled
      • Time Range
        • Use Time Range
        • Start Time
        • End Time
      • Common
        • Set/Clear Initial State
        • Preserve Initial Velocity
        • Density
      • Rigid
        • Stiffness
        • Spacing
      • Display
        • Show as Particles
      • Geometry Changes
        • Use Soft Selection
    • Cloth and Inflated Parameters
      • Settings
        • Self-collisions
        • Stretch
        • Bend
      • Tearing
        • Tearing
        • Random Seed
        • Cloth tearing map
    • Recording Settings
        • Record Data
        • Clear Recording
        • Save to File
    • Fluid Settings
      • Meshing Options
        • Fluid Constraints
        • Particle Occlusion Map
        • Granularity
        • Mesh Type
        • Scale Particles
      • Texture Coordinates
        • Generation
        • Near Particles
        • Near Vertices
    • Softbody Settings
      • Adopt Mesh Animation
    • Convex Settings
        • Convex Segmentation
    • Signed Distance Field Settings
        • Is Dynamic
        • Resolution
    • Curve Settings
      • General
        • Input Samples
        • Smoothing
        • Slice Particles
        • Spacing
        • Radial Spacing
        • Rotation Along
      • Spring Constraints
        • Spring Stiffness
      • Rigid Constraints
        • Rigid Stiffness
        • Rigid Slice Count
        • Rigid Overlap
  • MaxScript access

Overview

Lucid Modifier is an Object Space Modifier which can be applied to most geometry in 3dsmax such as meshes and splines to make them a part of Lucid simulation. This modifier contains general object-specific parameters such as density and material type as well as material-specific parameters such as cloth stiffness or fluid meshing.

Inline help

If you hover over most of these parameters a tool-tip will appear giving you more information about that particular parameter. This is a great way to learn more about each Lucid setting on the spot.

Adding Lucid Modifier

There are a number of ways of adding Lucid OSM to a scene object:
  1. Select your object and use Modifier Panel to browse the list of modifiers. Select Lucid Modifier from the list.
  2. Use the Lucid Toolbar preset drop-down to select a preset while your object is selected.

Particle meshing

Particle meshing is done using a glorified "marching ant" algorithm which walks the volume of the particles and generates a polygon mesh based on whether it falls inside a particle or outside of it. To do this the particle volume is broken down into a 3-dimensional grid consisting of many voxels. The size of individual voxels determines their overall count and the detail of the resulting mesh. A parameter called Granularity specifies this size. Granularity has no effect on simulation itself and only affects particle meshing. If you want to increase the resolution or number of particles in simulation you need to use the Resolution or Manual Radius parameters in global Flex Settings.

Additional effects can be applied to meshing such as generating water droplet shapes through motion paths and smoothing of particles using OpenVDB filters.

Parameters

Preset

Provides a list of predefined settings for the modifier which will simulate various materials for your object. Once you select a preset it will change the modifier's parameters to make it behave like the selected material. For example, you can select a Wood or a Water preset.

Body Type

Specifies the physical type (material) of the current object. Each body type will make the object behave differently during the simulation. These are the options available:

  1. Rigid - Used to simulate hard surfaces like stone, metal, and wood. The object will be simulated as solid collection of particles connected with rigid springs.
  2. Fluid - Used to simulate liquids like water, glue, and mud. The object will be simulated as a volume of fluid. The viscosity and other settings can be set to modify the fluid behavior.
  3. Soft - Used to simulate bouncy, squishy, and otherwise soft objects like rubber, pillows, and jelly. Similarly to Rigid body type, object will be simulated using a lattice of particles. However, the springs between the particles will be soft.
  4. Cloth - Used to simulate fabric. Surface of the mesh will be simulated using a lattice of particles. Special behavior like tearing can be specified.
  5. Inflated - Used to simulate filled objects like balloons, tires, and bubbles. Behaves similar to cloth, but has a volume.
  6. Collision - Used to specify unmovable objects like terrain and walls. Any mesh can be used robustly with this body type as long as it doesn't move during simulation.
  7. Convex - Similar to Collision body type, used to simulate animated, but non-deforming objects like animated bars, walls, and stones. If geometry is not convex it will be segmented into a collection of convex meshes automatically.
  8. SDF - Similar to Collision and Convex body types, used to simulate animated and deforming objects like a character's body. This is the only collision body type that can be deforming during the simulation at the expense of slower performance.

Depending on the body type you select you will be presented with different parameter rollouts in the modifier.

The body type parameter can be animated over time to change the type of simulation performed on the object. For example, you can start simulating the object as a fluid, let it spill in the scene, and then simulate the object as a soft-body for the rest of the time. It is important to note that you must set the key interpolation type in 3dsmax to Step to avoid interpolating this parameter between time frames.

Go to attached video

Changing body type tutorial

Enabled

When this option is on the object with current modifier will participate in the simulation, otherwise it will be ignored. This is useful for temporarily removing some objects from the simulation.

Time Range

If you don't want an object to be inside the simulation for the whole simulated range you can use these options to specify the start and end frames of the range where the object will be added and removed to/from the simulation.

Use Time Range

Go to attached video

Object time range tutorial

Toggles whether object will use the custom time range or be present for the whole duration of the simulation.

Start Time

First frame where object is added into simulation

End Time

Last frame where object is removed from simulation

Common

Common properties which apply to all body types.

Set/Clear Initial State

This button will be enabled during simulation. It allows you to specify the state of the object which will be used to start a simulation. For example, you can create a fluid volume and then simulate it in real-time until it settles into a pool. Then you can capture this state so that next time the simulation starts it will already have the shape of the pool.

Go to attached video

Set initial state tutorial

If initial state was previously set you can click this button again to clear the state. The object initial state is stored with the scene and as such will increase the scene size when present.

Preserve Initial Velocity

When on, velocity of object's vertices will be calculated from key-framed animation inside the scene right before it begins simulating. This velocity will be passed on to the simulated object at the start of the simulation.

Go to attached video

Preserve initial velocity demonstration (Begin at 3:00)

Density

Specifies how dense the object's particles will be. This indirectly sets the mass of the object. The bigger the density the heavier the object will appear during simulation. You can mix multiple fluids with different densities to create various non-uniform fluid effects. Likewise you can make objects buoyant or sinkable in fluid by making them heavier or lighter than the fluid object.

Rigid

Controls rigid body settings

Stiffness

Sets the rigidity of connections between particles in rigid body objects.

Spacing

Sets how far apart lattice particles are generated from one another in rigid body objects.

Display

Show as Particles

Specifies whether to display the object as particles or mesh. Read more on particle display.

Geometry Changes

Use Soft Selection

If this option is on and body type is inflated or cloth then vertex soft selection of incoming mesh will be used to blend the simulated object shape with the incoming object shape. This is useful if, for example, simulating a piece of cloth on a character's body to keep part of the cloth animation while allowing other parts to be simulated.

Cloth and Inflated Parameters

Settings

Self-collisions

If on, the particles in current objects will be allowed to collide with one another. This should be on if you want a piece of cloth to interact with itself, for example, if simulating a flag.

Stretch

Controls how much cloth particles are allowed to move away from one another. Makes cloth more rubbery when increased.

Bend

Controls how much the cloth is allowed to bend.

Tearing

Go to attached video

Cloth tearing tutorial

Tearing

Specifies the magnitude of the force between cloth particles required to break their connection. If this value is 0 then tearing will never happen.

Random Seed

Controls the random variation of cloth tearing

Cloth tearing map

If map is assigned to this parameter then it will act as a multiplier to the Tearing parameter to control the joint tearing forces. White values of the map will be more tearable than the black values.

Recording Settings

Used to control if and how the object simulation is recorded.

Record Data

When on, the object simulation will be recorded during recording.

Clear Recording

If recorded data is present pressing this button will clear it, otherwise the button is disabled.

Save to File

If checked the recorded data will be saved to an external file instead of being embedded in the scene. See recording simulation documentation for more information.

Go to attached video

Caching to external .lrd and .prt files

Fluid Settings

If body type is set to Fluid you will see these settings.

Meshing Options

Controls meshing of the fluid if not displaying as particles.

Fluid Constraints

If this option is on then particles will act as a fluid. Otherwise, the particles will not stick to each other. Turn this off to simulate sand and grains.

Particle Occlusion Map

A 2d or 3d texture map can be specified here to avoid generating particles in certain places of the mesh volume. World coordinates inside the mesh are passed into the map.

Go to attached video

Particle occlusion maps tutorial

Granularity

Specifies the detail of the fluid mesh. Smaller value will make the resulting mesh more dense and accurate at the expense of computation speed. It is generally a good idea to set a larger value during preview and then decrease the value when rendering.

Mesh Type

Specifies the type of information carries by the particles. Having additional direction information can help produce better fluid meshes.

  • Isotropic: Fluid particles will contain directional information from particles
  • Anisotropic: Fluid particles will not contain any extra directional information

Go to attached video

Anisotropic particles overview (Begin at 3:45)

Scale Particles

Allows to manually increase or decrease the isotropy information carries with particles.

Texture Coordinates

Lucid can preserve the texture coordinates of the fluid volume mesh. The resulting meshed fluid will have the coordinates at each vertex closely matching the coordinate of particles that were generated from the original mesh. This does have a slight overhead in terms of computing performance.

Go to attached video

Fluid mesh texture coordinates

Generation

  • None: Texture coordinates will not be generated
  • World Coordinates: Texture coordinates will be generates based on the fluid particle world positions. Useful if you want to have texture coordinates but if source mesh doesn't provide them. This also allows particles within the volume to have 3-dimensional texture coordinates.
  • Inherit from Mesh: Texture coordinates will be inferred from the fluid volume mesh.

Near Particles

Specifies the number of particles to use per each result mesh vertex to sample the result UVW texture coordinate. Can be used to smooth the texture coordinates in the resulting mesh.

Near Vertices

Specifies the number of vertices of fluid volume mesh to use for each particle to sample the UVW coordinate for that particle. Used to reduce UVW artifacts when generating particles.

Softbody Settings

These parameters control the way that soft lattice particles are generated from a mesh with soft body type.

Go to attached video

Soft body parameter tweaking (Begin at 4:22)

Adopt Mesh Animation

When on, the deformations from the mesh will be passed into the Lucid simulation. Useful for simulating objects which generate their own locomotion from movement like snakes and worms.

Go to attached video

Simulating deforming soft body objects

Convex Settings

Controls how convex collision meshes are generates from source geometry.

Convex Segmentation

If the source object is not itself convex Lucid can automatically generate a set of convex sub-objects from it through segmentation.

Go to attached video

Convex mesh segmentation (Begin at 6:45)
  • None: No segmentation happens, source object will be used as-is. If it isn't convex then it will not participate in the simulation. No extra processing is done.
  • Convex Hull: If source object is not convex a single convex hull will be constructed from it. Good way to ensure that the object will for sure be present in the simulation, however, it might not produce correct or precise results if it is concave.
  • Quick Segmentation: If the source object is not convex a segmentation algorithm will split it into sub-objects which are convex. The resulting set of objects will try to match the original geometry as closely as possible.
  • Accurate Segmentation: Same as Quick Segmentation but more care is given to segmentation to produce more detailed results at the expense of computing speed.

Signed Distance Field Settings

These settings appear when SDF is used for object's body type.

Go to attached video

Deforming collision objects (Begin at 4:30)

Is Dynamic

Turn this option on if your collision mesh is deforming over time. When it is on, this option will update the collision mesh inside Lucid at each frame sub-step. This will make the simulation slower, however.

Resolution

Determines the detail at which Lucid will render the signed distance field used to represent the collision object internally. The higher this value then more accurate collisions you will get, at the expense of the computing speed.

Curve Settings

These properties appear when you apply Lucid modifier to a spline and NURBS curve object.

Go to attached video

Creating simple ropes (Begin at 2:50)

Go to attached video

Curve simulation parameters (Begin at 3:40)

General

Input Samples

Determines how many points to sample on the incoming curve. For example, if this parameter is 2 only the root and tip of the curve are sampled. More samples mean more detail will be sampled from the curve and more particles will be generated from it.

Smoothing

Used to normalize the sampled points to produce a smooth curve.

Slice Particles

Specifies the number of particles to have in the cross-section of the curve. For example, a value of 1 will create a simple chain of particles going along the curve. A value of 2 will create a ribbon, and a value of 3 will create a prismatic mesh around the curve. Larger values of this parameter will ensure that the curve is less bendy and more rigid.

Spacing

Adds an offset between sampled particles along the curve length.

Radial Spacing

Determines the size of the curve cross-section. Larger value will make simulated curve lattice thicker and thus less flexible.

Rotation Along

Allows to add a twist of cross-sections in particle lattice along the curve length.

Spring Constraints

Spring Stiffness

Controls how loose or stiff the simulated curve is.

Rigid Constraints

These values define the constrains on the joints used to connect the simulated curve particles together into a lattice.

Rigid Stiffness

If 0, rigid constraints will be disabled. Otherwise, sets the rigidity of the constraints.

Rigid Slice Count

Determines the number of slices used for rigid constraints.

Rigid Overlap

This value needs to be smaller than Rigid Slice Count. It determines how many particles will be shared between each cross-section of the simulated particle lattice.

MaxScript access

Lucid modifier parameters can be accessed via standard MaxScript commands. Use showProperties function to get a list of modifiable properties.

Sample code for dealing with Lucid modifiers: Test_ObjectSpaceModifier.ms