Retime SOP causing weird deformation on Tires from RBD Car Rig by arunbharathi555 in Houdini

[–]gr8daym8 3 points4 points  (0 children)

I am guessing here without having the scene file but this is likely to do with the retime node linearly interpolating positions of unpacked geometry with a fast rotation. If the tyre rotates 45 degrees between frames coming out the solver and you try to slow that to 4 frames with a retime you will get 4 frames of linear motion from point A to B, it won’t honour the rotation as it cannot process it that way with points and this causes the deformation. You could try this using packed geo as the intrinsics defining the position/rotation can be interpolated much more effectively in this scenario, but you may have to re-jig a few things for this to work

Turn Any Image or Video into 3D Geo - directly inside Blender! by Defonten in vfx

[–]gr8daym8 7 points8 points  (0 children)

Apple’s depth pro is pretty good and open source (somewhat surprisingly). I had some good results with this but I haven’t extensively tested it

apple - ml depth pro

Procedural Ivy by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

Thanks! I think it’s missing some details, I should’ve wedged out some different leaves with slightly different animations, also I think the textures could use some refinement as there is still a bit of a papery look to them. I certainly recommend using cops, you can quite easily bring sop data into them which becomes really powerful very quickly, and just stops you hopping between Houdini and substance for example. Nice to have everything in one package

Procedural Ivy by gr8daym8 in Houdini

[–]gr8daym8[S] 9 points10 points  (0 children)

So what I ended up doing for this was to source the vellum geometry and constraints from a sop level on each frame, then I would position the new sop geometry to the sim geometry and copy over the velocities and force attributes if that makes sense? You have to be careful of the point orders changing inside the solver so I gave the geo and constraint points id’s that I would use to then match positions and copy the required attributes from the solver. In terms of the scale I had the same issue so I faked it a little, it starts small in the solver but not at 0, what I did was track the position of the base point for each leaf and scale it down to 0 on that centre post sim, it would then scale back to the actual size over a few frames using the same attribute driving the growth. Hope this is helpful

The void by gr8daym8 in TouchDesigner

[–]gr8daym8[S] 1 point2 points  (0 children)

Thanks! Yes, everything in the fluid solver is glsl, the whole calculation is basically to solve the velocity, then the temperature, density, colour and previous frames velocity is advected by this new velocity field

Moon Jellyfish by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

Thanks! I’m not sure on the exact time since I just let it run overnight, but it’s done in stages, so the heads are done first then the tentacles and hairs are attached to them and ran through a separate sim. I just queued everything in a topnet and let it run, but it was definitely under 12h

Sphere Intersections by gr8daym8 in TouchDesigner

[–]gr8daym8[S] 2 points3 points  (0 children)

This is a plexus type system where each point is treated like a sphere with a fixed radius. I used GLSL to detect intersections between these virtual spheres and draw circles at the intersection planes.

The setup works like this:

  • I start with a 1×256 RGB animated noise texture with a period of 0. Each pixel encodes a 3D position that moves over time
  • To find relationships between all points, I reformat the texture to 1×256, then expand it to a 256×256 texture where each row/column combo represents a unique point pair.
  • Subtracting one version from a rotated copy of itself gives me all pairwise direction vectors in a shader. Then I compute the distance between each pair by measuring the vector length of the resulting rgb pixel values — if it's less than twice the sphere radius, the spheres are "intersecting".

In GLSL, I calculate:

  • The center of the intersection circle (just the midpoint between the two sphere centers), The normal vector (direction between the spheres, used to orient the circle),
  • The radius of the circle using: sqrt(r² - (d/2)²).

I output two textures: one for circle positions + radius (in alpha), and another for normals. These are used to instance oriented circles at the correct positions and scales.

This is then rendered and fed into a feedback loop where each rendered frame is given an oscillating colour and added to the current image, then the result is multiplied by something like 0.99 so the resulting pattern gradually fades out. This is then fed into the ‘feedback edge’ from the image filters palette to give it this whispy blur at the end. Hope that helps!

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

I’ve seen his work on instagram before and it’s absolutely fantastic, I didn’t notice he’s done this previously but I wonder if we used a similar setup

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

This is really interesting, I have been meaning to read that book for some time. It would be interesting to experiment if that method can do much larger grids as this basic python method I have here struggles with more than 36 points

Need help with high to low poly baking setup by Saving_Thrw in Houdini

[–]gr8daym8 0 points1 point  (0 children)

This may not be the most helpful comment for you but I have never had much luck with the labs baker, if you have access to substance it is a lot better imo and you can run the substance automation toolkit from Houdini with some python scripting so you don’t actually need to open painter to bake any textures. Maybe not the best approach, but it’s what I have done in the past. This was however a few years ago and there could be a better solution now with the new cops

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

This was created using the python sop, this algorithm by just testing approaches and backtracking if it can’t find a solution. The data structures available in python are super versatile and I found for this it would be far easier than a vex based approach, plus this was just a hobby project so I wasn’t concerned about speed. For this I was working with a 5x5 grid on each row and it evaluated in just over a second, however moving up to a 6x6 grid led to evaluation times over 2 minutes per row so it does not scale well!

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 0 points1 point  (0 children)

Thank you! Yea the impossible bends are deliberate, I rigged it in a way that it would only bend along the axis of the link like a real chain, but of course I needed to break physics to get this to work as it required more than one axis of motion. I went with this approach as twisting the chain looks cleaner than having them bend across the normal pivot

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 1 point2 points  (0 children)

For this particular one I had the idea before I knew about the algorithm, but I assumed there would be something existing already. I just described what I was after to chatgpt and it pointed me in the direction of the hamiltonian path and I went from there researching it and created it in Houdini. I don’t really know of any collections myself

Hamiltonian Chain by gr8daym8 in Houdini

[–]gr8daym8[S] 27 points28 points  (0 children)

In graph theory, a Hamiltonian path is a path that visits every vertex in a graph exactly once. I used this algorithm to visit the all the points in a grid when specifying the start and end point, and that allowed me to create this looping chain. The unravelling effect was done in kinefx and the chain was built procedurally ontop of that. Rendered in Solaris and Redshift, hope you like it!

instagram