What exactly is the Maelstrom component?


Does anybody know what algorithms or principles make the Maelstrom component tick?

At first I thought that the component might be named after a mathematician or at least the person who came up with the whirlpool-like transformations, but that doesn’t seem to be the case (or at least the internet search is problematic since the name seems to be used in lots and lots of video games).
My latest theory is that its title might be inspired by “A Descent into the Maelström”, a 1841 short story by Edgar Allen Poe?


Anyway, I’m trying to replicate something similar in a coding project. Any hints are appreciated!


Is this it?

For me, as French, a Maelstrom is a sort water tornado it is also a mixing of differents elements.

1 Like

I found the maelstrom component to be an X-Y plane (or some other plane) 2D twisting deformation of whatever shape you give to it. The twisting distorts all the geometry you give it and can produce some unexpected (at least by me) results depending on what the base geometry is like and how much twisting you specify.

I used the component to make this:


1 Like

@laurent_delrieu Thanks for the links.

@Birk_Binnard I’d previously discovered your Thingiverse page. I like the recurring Uhu stick for scale. Your old-time-y website is also rad.

All transfornations are due to a Trans (4*4) Matrix. So get the attached - as an entry level starting point (Non Affine Trans) - and modify it accordingly.

Trans_NonAffine_V1;.gh (281.6 KB)

1 Like

This might be a good project to take my own little C++ matrix library for a spin.
After digging deep into matrix maths on and off for a couple of weeks, I have a pretty good understanding about most of the related transformations, except quaternions.

Thanks for the example.

I used them a lot for rocket 6DoF simulation. Once the library is usable they are very useful and quite transparent to use. If I remember well to make a transformation the order was not the same a Matrix or Rhino transformation.

PS: If you call Trans Matrices via nested Loops > LOL stuff on hand.

You mean this? (use a transpose option).

1 Like

No I mean for example I want to apply a first rotation (Rot_1) and then a second (Rot_2)
with one method you write (lets say Rhino Transform)
Total Transformation = Rot_1 x Rot_2
and the other method (lets say Quaternion)
Total Transformation = Rot_2 x Rot_1

So sometime from right to left and sometime left to right.

The maths behind quaternions is hard to understand, for me at least, even after diving into complex numbers. It’s a trippy, fringe topic! :slight_smile:
At least it’s easy to use them for quick rotations and compounding those, possibly the only thing they’re really used for in the field of computational geometry?
I especially like how easy it is in fact to extract an axis-angle-representation, which is also - besides matrices -, an apt form to encode and process rotations.

So you’re into rocketry?

Very nice! Mickey Mouse is a nice touch.

As I understand it for quaternions there is no real *order of rotations", since doing a compound rotation is analogous to simply multiplying two or more quaternions together, instead of doing consecutive rotations like in a matrix or Eulerian sense. Quaternions are non-commutative though, so the order in which the quaternions are multiplied matters.

Hope dies last:

Session2-Geometry_part1_SLW.pdf (2.3 MB)

1 Like