<p>Optimal rotation can be considered from different perspectives. For example</p>

<ul>
<li>as little support as possible. This way app tries to orient object so as much surface as possible doesn't overhang and doesn't need support</li>
<li>bed only support. App tries to orient object so all overhanging parts can be supported directly from the heatbed (not from the object itself)</li>
</ul>

<p>But have a look on Meshmixer as Ryan Carlyle suggested. In this app you can see 3 kinds of auto orientation procedures. Additionally Meshmixer can create angle support and tree-like support.</p>

<p>In terms of mathematics. </p>

<p>I cannot suggest any sources but you can imagine the way it calculates such optimal rotation. Let's say it will be dead simple explanation of the second approach:</p>

<p>Let's get all faces (facets) and let's project their center points on the "floor" (heatbed) or "ceiling". If imagined projection line slices any other faces then rotation is not optimal. App can calculate "a weight" of such orientation and then try to find the smallest weight of all possible orientations.</p>

<p>Of course it's not that simple. App has to manage concavity, which face requires support at all, and many other aspects but in general you can imagine the algorithm.</p>

<p><strong>edit</strong></p>

<ul>
<li><p>"as little support as possible" could be considered as easier to imagine "as little shaddow as possible" and the problem can be simplified to <a href="http://en.wikipedia.org/wiki/Projection_(mathematics)" rel="nofollow">projection</a> and <a href="http://en.wikipedia.org/wiki/Ray_tracing_(graphics)" rel="nofollow">ray tracing</a></p></li>
<li><p>similarly "bed only support" could be simplified to "cast shaddows but not on itself"</p></li>
</ul>

CC BY-SA 3.0
2016-08-16T10:09:59.400Z
This fails to answer the question in two ways: (1) the question is about resin printers (for which orientation considerations are quite different), not FDM (2) this is just speculation, not what the software actually does.
Tom van der Zanden
CC BY-SA 3.0
2016-08-16T11:04:04.477Z
I was almost sure you will argue this way ;) and you are right in some way but he asked "how to describe..." and my answer tries to describe the way the app is doing it. Is it FDM or not - the principles are more or less the same. Maybe "floor" should become "ceiling" but it's still the same. I mean he asked more how it's done than how it's done in this particular app.
darth pixel
CC BY-SA 3.0
2016-08-16T12:28:00.113Z
The principles are completely different for a resin machine. You don't care as much about the amount of support needed, but for instance, if you have a model with a large flat surface, you do not want that surface parallel with the build plate because it will be difficult to peel (but instead at an angle so the surface in contact with the build plate isn't as large each time).
Tom van der Zanden
CC BY-SA 3.0
2016-08-16T12:42:28.567Z
Reading question literally I don't really feel the issue is a printer type dependant. jesbengradev hasn't mention it. According to my understanding of the question - he needs help to explain/describe algoritm in his research work. So he would like to understand and get principles of optimal rotation rather than apply to his application (especially to his printer). But I might be wrong of course.
darth pixel
CC BY-SA 3.0
2016-08-16T12:54:30.533Z
He asks about the optimal rotation feature of the FSL3d software, and this software is specifically for resin printers. As I've explained, the orientation considerations for resin printers are different than those for FDM, but without knowing how the FSL3d software works you can't answer this question. As I understand, they need to explain in their research paper how FSL3d works because that's what they used to orient their models, and the orientation of the models probably affects the results of their experiments.
Tom van der Zanden
CC BY-SA 3.0
2016-08-16T21:52:42.987Z
Thank you for your discussion, this is already helpful. While I do solely use resin printers, I habe been using other software besides RetinaCreate, but with Formlab's Preform it seems pretty much the same deal. Could we assume that the "logic" used here is either something worth protecting or so banal in the developers eyes that it doesn't need documenting?
jesbengradev
CC BY-SA 3.0
2016-08-19T05:15:17.913Z
@jesbengradev definitely it's not such trivial task in terms of math. Does it need documenting? It depends on your research area :) I would say it's quite similar to projection in 3D or casting shadows by parallel rays (which is projection). And this is quite well documented. see here https://en.wikipedia.org/wiki/Projection_(mathematics) and here https://en.wikipedia.org/wiki/Ray_tracing_(graphics)
darth pixel
CC BY-SA 3.0
2016-08-20T08:41:45.413Z
@darthpixel that's really good input, as I don't need to document an actual algorithm step by step but rather give a grounded idea of the general decision-making/logic that is at work here.
jesbengradev
CC BY-SA 3.0
2016-08-16T09:30:43.630Z
2016-08-19T05:28:07.040Z
2016-08-19T05:28:07.040Z
darth pixel
<p>I'm currently using FSL3d's RetinaCreate to prepare 3d-files for printing for research purposes. In this, I am relying on their <a href="http://wiki.fsl3d.com/Part_3_-_Using_the_RetinaCreate_Software_to_Print#Find_Optimal_Rotation" rel="noreferrer">Optimal Rotation</a> feature which rotates the object by, as far as I can tell, judging models on their stability with regards to the printing direction. After rotating the model, <a href="http://wiki.fsl3d.com/Part_3_-_Using_the_RetinaCreate_Software_to_Print#Generate_Supports" rel="noreferrer">supportstructures</a> are generated to keep the model in place while printing without the bits and pieces floating about and to keep structural stability.</p>

<p>My question is, as I've neither found a manual nor any source-code (and admittedly I am terrrrrible at maths), how can I describe the kind of algorithm/logic used by the software here? This is essential for me, as I need to describe this in my research. Cheers, Jesse</p>

CC BY-SA 3.0
2016-08-11T21:14:21.593Z
Hard to say exactly what RetinaCreate is doing. You might try looking into other slicers and manipulation tools that might be documented better. Maybe MeshMixer has some info, for example.
Ryan Carlyle
CC BY-SA 3.0
2016-08-12T22:37:28.083Z
It's closed source with no documentation available. This question is unanswerable bar by the makers of the software.
Tom van der Zanden
<3d-models><software><rapid-prototyping>
RetinaCreate Optimal Rotation
jesbengradev
# RetinaCreate Optimal Rotation

(Asked by: username_0 on 2016-08-11)

I'm currently using FSL3d's RetinaCreate to prepare 3d-files for printing for research purposes. In this, I am relying on their [Optimal Rotation](http://wiki.fsl3d.com/Part_3_-_Using_the_RetinaCreate_Software_to_Print#Find_Optimal_Rotation) feature which rotates the object by, as far as I can tell, judging models on their stability with regards to the printing direction. After rotating the model, [supportstructures](http://wiki.fsl3d.com/Part_3_-_Using_the_RetinaCreate_Software_to_Print#Generate_Supports) are generated to keep the model in place while printing without the bits and pieces floating about and to keep structural stability.

My question is, as I've neither found a manual nor any source-code (and admittedly I am terrrrrible at maths), how can I describe the kind of algorithm/logic used by the software here? This is essential for me, as I need to describe this in my research. Cheers, Jesse

**Tags:** 3d-models, software, rapid-prototyping

> **Comments:**
> **username_1**: Hard to say exactly what RetinaCreate is doing. You might try looking into other slicers and manipulation tools that might be documented better. Maybe MeshMixer has some info, for example.  
> **username_2**: It's closed source with no documentation available. This question is unanswerable bar by the makers of the software.  

---

## 1 answers

### Answer by username_3 on 2016-08-16. Score: 3 | Accepted answer

Optimal rotation can be considered from different perspectives. For example

* as little support as possible. This way app tries to orient object so as much surface as possible doesn't overhang and doesn't need support
* bed only support. App tries to orient object so all overhanging parts can be supported directly from the heatbed (not from the object itself)

But have a look on Meshmixer as username_1 username_1 suggested. In this app you can see 3 kinds of auto orientation procedures. Additionally Meshmixer can create angle support and tree-like support.

In terms of mathematics.

I cannot suggest any sources but you can imagine the way it calculates such optimal rotation. Let's say it will be dead simple explanation of the second approach:

Let's get all faces (facets) and let's project their center points on the "floor" (heatbed) or "ceiling". If imagined projection line slices any other faces then rotation is not optimal. App can calculate "a weight" of such orientation and then try to find the smallest weight of all possible orientations.

Of course it's not that simple. App has to manage concavity, which face requires support at all, and many other aspects but in general you can imagine the algorithm.

**edit**

* "as little support as possible" could be considered as easier to imagine "as little shaddow as possible" and the problem can be simplified to [projection](http://en.wikipedia.org/wiki/Projection_(mathematics)) and [ray tracing](http://en.wikipedia.org/wiki/Ray_tracing_(graphics))
* similarly "bed only support" could be simplified to "cast shaddows but not on itself"

> **Comments:**
> **username_2**: This fails to answer the question in two ways: (1) the question is about resin printers (for which orientation considerations are quite different), not FDM (2) this is just speculation, not what the software actually does.  
> **username_3**: I was almost sure you will argue this way ;) and you are right in some way but he asked "how to describe..." and my answer tries to describe the way the app is doing it. Is it FDM or not - the principles are more or less the same. Maybe "floor" should become "ceiling" but it's still the same. I mean he asked more how it's done than how it's done in this particular app.  
> **username_2**: The principles are completely different for a resin machine. You don't care as much about the amount of support needed, but for instance, if you have a model with a large flat surface, you do not want that surface parallel with the build plate because it will be difficult to peel (but instead at an angle so the surface in contact with the build plate isn't as large each time).  
> **username_3**: Reading question literally I don't really feel the issue is a printer type dependant. username_0 hasn't mention it. According to my understanding of the question - he needs help to explain/describe algoritm in his research work. So he would like to understand and get principles of optimal rotation rather than apply to his application (especially to his printer). But I might be wrong of course.  
> **username_2**: He asks about the optimal rotation feature of the FSL3d software, and this software is specifically for resin printers. As I've explained, the orientation considerations for resin printers are different than those for FDM, but without knowing how the FSL3d software works you can't answer this question. As I understand, they need to explain in their research paper how FSL3d works because that's what they used to orient their models, and the orientation of the models probably affects the results of their experiments.  
> **username_0**: Thank you for your discussion, this is already helpful. While I do solely use resin printers, I habe been using other software besides RetinaCreate, but with Formlab's Preform it seems pretty much the same deal. Could we assume that the "logic" used here is either something worth protecting or so banal in the developers eyes that it doesn't need documenting?  
> **username_3**: @username_0 definitely it's not such trivial task in terms of math. Does it need documenting? It depends on your research area :) I would say it's quite similar to projection in 3D or casting shadows by parallel rays (which is projection). And this is quite well documented. see here https://en.wikipedia.org/wiki/Projection_(mathematics) and here https://en.wikipedia.org/wiki/Ray_tracing_(graphics)  
> **username_0**: @username_3 that's really good input, as I don't need to document an actual algorithm step by step but rather give a grounded idea of the general decision-making/logic that is at work here.  

---

