Automatically align/orient 3d object?

Hi all! How can I re-orient/align a complex 3d object such that it perfectly matches a copy of itself?

As part of my Ph.D., I created 3d models of the same coral at weekly intervals for three weeks. The goal was to measure the change in volume as a response to pesticide or pharmaceutical pollution (do corals experiencing small amounts of pollutants grow slower than ones that don’t). Unfortunately, the models I created aren’t oriented precisely the same for each time step. I’d like to align the coral models to nearly identical versions of themselves over time. Having the alignment the same for each time point would help visualize the change in morphology AND help standardize model trimming steps (to remove the objects they were grown on).

Thanks for any advice you can provide!
![:smiley:|16x16]

(https://static.xx.fbcdn.net/images/emoji.php/v9/tf0/2/16/1f603.png)

Scanning software generally has alignment functions for snitching together different scans…though for something that’s changed over time…ugh that’s a PHD project in and of itself, lol…

2 Likes

Thanks Jim!

It shouldn’t have changed very much if at all. I tried a 3pt orient command that seemed to help but it isn’t easy finding the same points on a mesh.

you need to set up markers that do not change, these generally can be a marble or cube (dice actually work quite well for this) glued to a small rod and affixed to a stable point somewhere in relation to your object. that way you orient the objects that do not move instead of the object that have changed over time.

if these object are in open water you will want to connect them together so their position in space in relation to each other can be controlled.

That is a good option for a future project. In my case, I had markers in the frame. But the orientation of each model isn’t the same. In the picture below, you see a coral placed in a white plastic holder. The coral is mounted on square glass. Each time the model was made the coral was placed there, BUT the orientation was sometimes changed (i.e., the glass square was rotated). I can rotate the final model in Rhino so that the corals face the same direction. However, when I do this, I can tell that the angle is off for each model.

This is possible with Artec Studio. How many different models do you have?

1 Like

Oh wow. Yes, that seems fairly straightforward with Artec Studio. Unfortunately, I have 420 models (140 corals * 3 time points) :sweat_smile: :sweat_smile:.

I can give it a try with a few of your models to see if the results are what you’re expecting?

1 Like

Thanks, Martin. I’d appreciate that! In the attached drive link is a rhino file with three models of the same coral. There are three layers where I’ve trimmed the raw mesh such that it is now a closed mesh. Then there are three layers ending in RAW, which contain the unmodified meshes exported from metashape.

I aligned mid and final to baseline.

baseline.obj (6.0 MB)
final.obj (5.6 MB)
mid.obj (5.1 MB)

Just playing around… you can do similar visualizations with Grasshopper.

Thanks Martin,

That looks terrific. I will see if this is something I can implement on my end. The pricetag of the software is high for my use. But maybe the trial version would work.

Hi Stephan

You might give CloudCompare a look … it’s free but the developer asks for donations if you use it professionally.

I believe a fine registration function was added so it goes beyond a 3 point method to considering the topology. If the comparison needs points instead of meshes, you can sample the points on a mesh to generate a point cloud from a mesh. Perhaps its possible now to compare a mesh to a mesh, I haven’t used a recent version.

CloudCompare works great for this task! Thanks for helping solve this issue! :slight_smile: