Hi Justin,
Thank you very much for the very detailed write up on your experience and the suggestions. This is a lot to take in so I will use this thread for reference for a long time. For now here are my quick answers to each of the question, these are mostly off the top of my head.
> 1. Fixed scale is not ideal and seems to make things difficult to dial in. Values of .004 are being used, for instance.. Could very well just be my fault. In a quick turnaround job I didn't want to be re-scaling and moving elements off origin, etc.
Do you mean scale for particles or scene scale? We respect scene units. All simulations happen in base centimeter units and everything else should be converted properly.
> 2. The hover-over documentation is great (aside from the quick-disappearing of it), but it's missing on some features/dialogs/etc, and also, if features are un-used on certain types of sim objects such as cloth and inflatable, softbody, etc. For instance, Flex settings Scale > resolution does absolutely nothing to my inflatable/collision setup. No time difference, identical results, etc. values of .001 to 500 didn't change, so I assume this isn't needed for collision/inflatable only sims?
Yes, we need to continue adding more tooltips and improving the docs. Resolution will only work if manual particle radius is 0. It automatically sets particle radius based on scene geometry size and value you specify. But if you specify manual radius, that overrides scene resolution.
> 3. Changing the particle size on an inflatable sim drastically affects nearly every other setting in the sim. This isn't as ideal as I think it should be. particles and their settings should be relative, but they seemed very VERY relative. IE, if I get a nice fast sim and just want to upres it or nerf some intersecting geo, it's another hour of trial and error because changing the substeps or iterations was NOT a small change. Same with particle size. On an inflatable, the size seemed to drastically affect everything, eventhough the count never changes. Going from 5 to 5.1 makes my mesh get spiky, etc. At least in this case.
This is how NVidia FleX works. Since we use it for simulation we have to just make sure that parameters passed into it are valid and will not cause instabilities. Spiky mesh is strange. Can you show was it looks like with "Show as Particles" on? I wonder if it is meshing or particles themselves which cause this to happen.
> 4. Max particle velocity is saving my butt on this sim since i only care about the final resting look, but it could be more robust. I am using it in conjunction with substeps and iterations to find a nice fast balance with good quality. Perhaps more like max's cloth dynamic threshold? Maybe automatically increase it (but perhaps show us in the viewport info?) for particles that need it, when they need it. For instance, my sim works wonders until the majority of the cheese shreds start piling up on the first few who hit the bottom of the collider object.. then they just smash together infinitely until the sim's initial downward gravity force is done controlling and the materials sort of bounce back. But those that are already inside of one another on the bottom are un-recoverably smashed into nothing. This needs way more sub-steps and samples to fix in this case, which slows the whole sim down unnecessarily. Adaptive settings? Maybe dynamically increse based on rogue particle behavior? More on that below..
Nvidia FleX is what uses the max. particle velocity to limit particle speeds at any given time, to avoid instability. We don't have much control over doing it for individual particles though we can probably try to remove the restriction and handle Max velocities on our end. In any case, since this is a max. velocity it will not affect particles moving slower than it. Otherwise there is no way to tell if particle is moving too fast due to instability or as a desired effect.
> 5. I tried animating the gravity amount and on/off, etc. Didn't work. What features are animatable?
Strange, gravity should be animatable. Maybe we're not setting it at every frame. I will need to do some testing.
> 6. I get exceptions every time I start a simulation file. I have to say "don't bug me" and just continue. I've never not-had that warning pop up to my recollection.
Can you please list the exact steps to reproduce this from scratch? Looks like a bug which needs to be fixed on high priority.
> 7. Materials often times don't show in the viewport (My materials were just colors and standard materials in a multi-sub)
You mean on a meshed object? Can you send me a scene where this happens? Seems to be working OK here.
> 8. PFlow setup does not produce the same results as having the meshes in the viewport with modifiers. This could be due to the forces, which I can't get to work in the modifier, but it actually seems like it's less-quality. More penetrations, less detailed reactions, etc. It also loses smoothing groups and triangulates which is less than ideal. I am also unable to get mesh to particle as a result. This could be my idiocy in PFlow. I know enough to be dangerous, and that's about it.
Are you using PF geometry operator or fluid? If geometry, is it with inflated object? Again, some sample scene would be very useful. PFlow does get simulated with different approach from normal since we have to abide by PFlow rules and forces so difference in behavior is to be expected. But smoothing groups and meshing is another story/
> 9. Flex Forces - > wind.. is this disabled for inflated sims? Doesn't do anything. Does it need an emitter gizmo, and if so, is that a spacewarp bind?
You can bind an external spacewarp, though the wind force should be working. Maybe it is too weak?
> 10. Depending on particle radius, mesh density, and inflation/stretch settings, my meshes turn "spiky" at the start of the sim (every other vert seems to jut out from the mesh). This is incredibly hard to dial in and remove while keeping characteristics I wish to retain during the sim.
I guess it is related to the earlier question. I wonder if its because of particles or meshing. Sample scene would be appreciated.
> 11. inflatables could definitely use features to preserve origina/target mesh shape, plasticity, etc. Doesn't seem to do anything in the flex settings as those are only for rigids from what I saw in the demo vids. I mention plasticity in reference to max cloth, BTW.
Right. Hmm, I'll see if this is possible.
> 12. Is there a particle "kill" object type that I missed? Some of my particles don't all make it into the collider object, and the ability to trim them while still being able to save a cache to disk would be excellent. (vert number changes seem to invalidate the caches)
You can kill particles using standard approach in PFlow. We have it in one of our tutorial videos.
> 13. Instancing a modifier across multiple mesh groups is great, but then you can't save individual caches. Are there flags to use in the filename so your first sim doesn't override the next object's? I thought I got this to work once, but ever since, it doesn't work. Also, is there any way to make the browse dialog remember your last folder? That was very annoying that it kept defaulting to the max-file save path.
Hmm good point. Maybe token inside the file name is a good approach. I will see about the browse dialog.
> 14. Is there a way to record the sim to a certain frame, change settings and continue, especially with caching to disk on? I am wasting tons of time redoing good frames because the record is faster and better than just turning the sim on and scrubbing frames. (for me).
Have you tried the capture initial state button for this?
> 15. What would control a mesh's twist factor? Stretch doesn't seem to do it, and bend is very touchy. I wanted to enable some torsion, but I couldn't get it without losing the other characteristics.
Not sure I understand this one, can you elaborate please?
> 16. Can you sim spline shapes and replace with meshes later via skinwrap or isntance swap? Is simming a spline quicker than an inflatable with 60ish polygons (x5000)? (think shredded cheese.. just a rectangle with some subdividions). The video showed what appeared to resemble the particles of an inflatable object instead of a softbody, but it seemed to work quickly.
Splines are simulated with auto-generated lattices per your settings with rigid constraints on them. It should be either as fast or faster than a mesh, depending on the mesh you use. Once simmed, you can always add skinwrap or something similar to drive your mesh. Though I'd probably still go with mesh simulation.
> 17. Density seems ignored for inflatable objects. How do I set mass? Not for buoyancy but for inflatable/inflatable collisions. Is that possible somewhere? Turning up the pressure balloons my meshes, and turning up the stretch resistance actually breaks my sim, yet when 3000 pieces of cheese are on top of others, they smash them. Curious the best route to take. I eventually slowed everything down and upped the samples which reduces the "cool" look of particles smashing into one another mid-flight. Best of both worlds is what I was after lol.
I think density is the only thing we have control over.
> 18. Is there a plan for post-sim refinement via secondary "settling" abilities, etc? Quick sims get me very very close, but the ability to have volume check for intersections after the initial sim and attempt to fix via different settings (perhaps more flexibility, etc) would be excellent. This is part of my "initial state" sort of question, I assume. Typically though, intersections are what they are. The fact that this plugin knows they are inflatable volumes, couldn't it detect it at rest and fix it? Just thinking out loud. Most sims would instantly view the last sim's end pose and explode because particles are too close, etc. It could be nice to turn off features and only care about others, etc.
Good idea, but we don't have any secondary tools to fix collision defects at the moment.
> 19. Is there an air-resistance or turbulence factor somewhere? Or can this be supplied in a non-pflow sim? Wind with a gizmo would solve this. I couldn't seem to get that to work.
Can you use drag spacewarp for this?
> 20. The ability to have sim groups with their own settings such as start time, gravity amount, collisions on/off and at what time, etc. would be great. Because of the size of the scene bounds, I had to have overlapping meshes that started at different times to get enough cheese in the bag (because of the pflow issues I had). This worked great with the start time, except the initial ease-in of the gravity's effect meant there was a big gap between chunks in the sim. This creates a visible area in the result. If I started the second sim set earlier, they crashed through the previous elements still "falling." Can you set the forces to already have a pre-roll but not allow these "groups" to interact until a specified time? Since Lucid appears to have one global sim system, I couldn't figure this out. Self-collisions was not animatable.
Do you mean sim groups like presets, applying to the same objects but with different parameters? Not sure I understand this request fully.
> 21. On that note, could there be an ability to check for collisions with other sim elements but not itself? I know self-collisions can be costly. Also, I had many meshes "flip" an edge inward even with this checkbox on and a ton of sub-steps. Seemed to not work entirely. Perhaps inflatable-elements (made up of however many particles per mesh-element) not check within themselves? Does this exist?
Cloth and inflatable have the "Use Self Collision" checkbox, do you mean this?
> 22. Could the globals be a floating interface like PFlow or other scripts? Switching back and forth was rather time consuming when all was said and done.
That would be hard to implement. We're trying to conform to 3dsmax UI standards and that's how it wants things to be laid out.
> 23. I eventually had 6 main objects with many mesh "cheese" elements within each that resembled the 6 different shape instances and material variations that I had in my initial particle setup. Instancing these modifiers across the 6 objects wasn't an option due to the caching, so I eventually ended up using the wire parameters to unify the 3 settings I kept adjusting. Maybe an internal solution for this? There are many maxscripts that handle multiple modifiers' settings at once, like VMC and Zorb. It would be nice to have sections of different modifiers be linkable. This is a long-standing max issue, but any internal fixes you can add are appreciated.
I suppose ability to save unique cached from instanced modifiers would fix this problem.
> 24. At some point using the shelf icons to add objects to my sim setup, I ended up getting an error (maxscript) that the flex settings node was not the correct name or something to that effect. Is it possible to just "reset" the globals and wipe out everything but maybe save presets first? Screenshotting my panels was my solution when max decided to shit the bed and needed a reboot.
I think you can already save a preset, I need to check.
> 25. Sub-steps up to 99 worked fine, but when I went over 100, the first meshes in my objects would not respect gravity and required the rest of the cheese to "land" on them floating in the air in order for them to move. Sub-steps over 100 was just me testing the inner-penetration issues, and I eventually ended up with much lower numbers and more stable sims, but that seemed like a bug. Are there min/max values for inputs other than the solid rest % that maybe aren't locked like they should be?
Too many sub-steps can be problematic as well because it makes time delta super small and can cause precision problems. There's usually a golden locks area for substeps and iterations depending on your simulation requirements. We tried not to restrict options that don't need to be restricted.
> 26. Can the globals/modifier menu be context sensitive to only show features that are applicable to the active sim state? Quick toggles for other global functions like.. setting all X type objects to inactive, etc. That could be useful.
Thanks for the suggestion.
> 27. Don't turn a sim element's "active" checkbox on mid-sim.. it doesn't like that. ;p More specifically, I set the "start frame" time to 5 frames ahead of the current frame when I clicked active. It was worth a shot. ;p
Ok, something which needs to be fixed in the UI I think.
> 28. Viewport hints like perhaps object coloration for settings to know when you're in the right ballpark? For instance.. Dissipation. I have no idea what a good value would be without numerous sims guessing. Can previous sims store "average" data from the particles to aid in these adjustments? It would be good to know that at a certain frame 90% of the particles are at X value for instance. Just a thought. Similar to how houdini can show vertex velocity "streamers" it could be cool to have that option as check-boxes on some of the globals. Perhaps this is all just a units-mismatch confusion issue that I had.
I'll need to see how Houdini does this. Interesting idea.
> 29. This is another "more documentation" type thing but.. what is Near shapes, %? Any way to get a bounding box or something like a temp-particle display while dragging the slider (see above)?
This controls collision detection of particles near collision meshes. The % part is referring to the percentage of particle radius that the particle will try to keep away from any meshes in the scene.
> 30. Are multi-GPU systems helpful at all for speed? Obviously memory-wise they are limited by whatever is on one card, but could an SLI system help?
Nvidia FleX only uses a single GPU since it cannot share memory between GPUs, so having multiple GPUs will not speed things up.
> 31. Would having multiple resolutions of your meshes, used for specific parts of the sim, help at all? If I understand correctly, this is sort of what particles+clusters does, right? At Scanlne, every asset got a convex hull for sim purposes, but some elements were refined with additional res meshes. I am unsure if this is possible in a one-step sim engine like this.
If you're using convex meshes the convex segmentation happens automatically but can really be improved if you have a proper mesh with few holes. Having clean simulation-friendly meshes is always a good idea in general. Fewer faces with static collision object meshes will mean faster performance. With SDF it doesn't matter as much I think.
> 32. Do the tether settings affect inflatable sims at all?
Yes, inflatable and cloth collision types are very similar so tether should apply to both.
> 33. inflatable particles should have the ability to show their linked neighbors, etc. I realized one of my meshes had an issue when I tried switching to a softbody with small particles. There were "trails" of particles as if I had an edge connecting two of my mesh elements (top to bottom of my object.. was very strange). I didn't realize that was my problem until I tried that and saw the phantom particles, which I assume were also causing the inflatable setup issues, because once I scrubbed the geo and re-imported it, those issues went away. (see attached screen) I can confirm there was nothing connecting the meshes, and the vertex order was rebuilt with the same result.
Ok, so you propose we display not just particles but also connections between them, right? I think it is a good idea.
Marsel Khadiyev (Software Developer, EPHERE Inc.)