Archived post by mestela

so heres One Weird Trick that Sim Folk Don’t Want You To Know

add a pop speed limit, and set a minimum speed

i found with default boid stuff in pops that particles can stop too easily, which ruins the look

if you don’t allow the particles to go below a certain speed, you get much more of that bird like motion

Archived post by toadstorm

well, i do, but it’s part of MOPs Plus so there’s a bit of proprietary stuff in there that isn’t exposed

if you have specific questions i’m happy to answer them

the code above is run in a sop solver after fetching impacts data, it’s used to generate new constraint prims. you’d have to create the polyline and get the `name` attributes of the two objects based on the impact points

oh! actually @districtnein i have an older test scene i built before i asset-ified everything. it doesn’t have nearly the same feature set but it shows how to build dynamic glue constraints (outside of a few edge cases this won’t cover)

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20231312/05/23/rbd_dynamic_constraint_toadstorm.hip

Archived post by toadstorm

there’s some local space fuckery involved with where you put constraint points and what orientation they’re in. they have to be generated in the rest space of the rbd objects, even if the rbd objects aren’t in rest space when the constraint is made

i built a tool for this in MOPs+, it generates constraints on the fly from collisions. it works roughly like this: “` // get position, orientation, and rest xform of impact prims vector P1 = point(1, “P”, i@impactprimnum); vector P2 = point(1, “P”, i@parentprimnum); vector rest1 = point(1, “rest”, i@impactprimnum); vector rest2 = point(1, “rest”, i@parentprimnum); vector4 orient1 = point(1, “orient”, i@impactprimnum); vector4 orient2 = point(1, “orient”, i@parentprimnum);
vector deltaP1 = @P – P1; vector deltaP2 = @P – P2;
// rotate these vectors into the local space of the impacting objects. deltaP1 = qrotate(qinvert(orient1), deltaP1); deltaP2 = qrotate(qinvert(orient2), deltaP2);
// shift by rest position. these are the local space constraint points. P1 = rest1 + deltaP1; P2 = rest2 + deltaP2;
// generate a polyline from P1 and P2 and set name attributes to match the two RBD objects being constrained… “`

the attributes will be different if you’re not generating stuff from collision points, but the math should be similar

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20231312/05/23/rbd_runtime_constraints.gif

Archived post by have_you_tried_google.

tough one to get the exact shapes without more control and art direction, but a start….

little closer

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20232311/28/23/squashMetalVellum_HIM_v002.hiplc
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20232311/28/23/squashMetalVellum_HIM_v005.hiplc
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20232311/28/23/image.png

Archived post by ogvfx

I’ve done some of that custom surface tension calculating adhesion and cohesion on surfaces when I was working for Pixar on elemental.
I pretty much used these for references and incorporated it into flip.
https://vimeo.com/203706350 https://vimeo.com/299769390
One other thing I did was an example I’m trying to find again from odforce that does a sdf calculation on a point cloud and I used that essentially as an airfield mask and used velocity and vorticity also to mask areas for reseeding and maintaining the points to be uniform distance and turned off regular reseeding on the flip solver.
This was the end result on the first shot here: https://vimeo.com/854754642
It ended up being two separate sims when his head explodes and all the splashing on the shelfs. I even used @jake rice 😮 optimal transport example and built a guided splash setup that directed and shaped all the splashes from the sources so the final resolution was predictable. The reseeding for the flip was a pain sometimes on turning it around but I ended up making sure it only resampled if it was deep within the sdf calculation and the flip wasn’t calm. I remember Alejandro had a very early example I kept around and built all this stuff inside a sop solver and just calculated the point cloud sdf in a wrangle before it processed the sop solver.

Archived post by adrianr

@tokyomegaplex@.nickd Pretty sure this is because you’ve saved your files on a frame other than your scene/sim start frame. Shift to whatever your scene start frame is, version up/save, close and reopen the new file. It’s hard to replicate but this has fixed the issue for me every time (Still annoying it happens at all obv)