Website powered by

Salmon Automaton

I modeled this project in Houdini and textured it in substance painter. The animation is done procedurally using equations, and the speed can be controlled form the object level.

These translations translate the spokes so that each spoke aligns with the section of the wire that appears to drive it. Below is the equation for the Z and Y translations
• Y Translation: (cos(ch("../speed") * ($F + ch("../framechange"))) * 0.21 + 0.21) + 0.3
Explanation: (cos(speed) * (frame number + the frames needed to travel to the next position(this number also needs to be multiplied by how many spoke positions the current spoke is away from the main spoke))) * radius + radius) + height away from the wood base
• Z Translation: sin(ch("../speed") * ($F + ch("../framechange"))) * -0.21
Explanation: (sin(speed) * (frame number + the frames needed to travel to the next position(this number also needs to be multiplied by how many spoke positions the current spoke is away from the main spoke))) * radius

With these equations, the spokes moved in sync with the spinner.

Now that the spokes were moving in sync, I needed them to rotate so that the curve at the end was always touching the wood base. Below is the equation I used for the rotation.
• Rotation: (-asin((-cos(ch("../speed") * ($F + ch("../framechange"))) * -0.21) / 1.60)) – 11
Explanation: (-asin(cos(speed * (Frame rate + frames to next position( also multiply by the position away from main spoke)) * - radius)/ length of spoke)) - 11 degrees as a final adjustment that helped align the spokes get the final position

With this in place, my spokes moved as I intended.

Sockeye Salmon Automaton

References

References