Ring movement with 8 .csv data points through time

Hi blenderartist community,

I would like to ask if you guys have better suggestions on how to get what I need done. I have 8 data points in 3D space of which I obtain data points X,Y,Z coordinates from a different machine in a .csv file. These data points form a ring shaped object that moves and deforms through time. What I am doing unto this point gets the job somewhat done but I am curious if you guys have a better idea how to tackle this problem. So what I do is create 8 object which I assign the f-curve from the .csv file through time. That gives me 8 objects that fly through space and represent my ring (see the image attached).

However I need a ring shaped object (torus). So What I do is I create a torus and with 7 major segments and use shape keys and the snap tool to snap the corners to my 8 moving objects and set the difference for each frame I have. Finally I use the subsurf modifier to make the torus a smoothed ring shaped object that connects my data points (8 objects created first).

This approach gets it done, however there are a couple downsides. I would ultimately want to export this into an animated .dae (or .fbx if not possible to get .dae working) file for my presentation. The .dae gives me worse outcomes than the .fbx file however. In both files the 8 data points are visible and are animated. However the torus is often displaced, doesn’t move, and doesn’t have the subsurf modifier applied. I don’t know if its possible in blender but I guess that somehow connecting and deforming my 8 objects created initially and shaping them into a torus shaped object would get me closer to what I want done. Correct me if I would be wrong and feel free to inspire me with different approached to tackle this problem :slight_smile:



You could move 8 Empties tied to your csv coordinates.
Depending on how the coordinate reading is done (are xy always the same for one reading position?) some sinuses and cosines later you can let python calculate Z rotation (and axis position) for one central Empty which you then copy to some nice torus using either drivers or object constraint Copy Rotation.

Alternative - Add Bezier circle and in edit mode w subdivide once, then select point and Ctrl-H hook to new object. You will end up with 8 Empties you could assign your coordinates from csv. If you set Full, Bevel value and Resolution 2 or 3, Bezier Circle will turn into torus; each empty will control points/overall shape in Object mode.

Thanks Eppo,
The Alternative way you describe here works briliantly to get it all modelled in blender :slight_smile:
However when exporting to .dae or .fbx files errors still show up. After exporting to .dae the .dae giles won’t open, I get an error that the file could be damaged. When exporting to .fbx and opening in a .fbx viewer the bezier will import in position of frame 0, with deformities corresponding to that frame, when playing it won’t move. I have tried baking action, in fbx it will only follow one of my 8 coordinate sets or won’t move at all if i set it to bezier bake. I guess these files have a hard time to make deformities to meshes. I don’t have much experience with .dae or .fbx files but I would be grateful if it could be animated in either these files when I press play :slight_smile:

This is the .fbx file in the FBX viewer. The empty moves but the ring doesn’t deform with it.