# Finding the optimum parameters for volumetric swept 3D display application utilizing planetary gear system

Imagine a planetary gear system as below:

There are two curved screens attached to a shaft of the planet (little purple gear). The curves are logarithmic spirals. So they are rotating with the rotation with the planet gear. The rotation frequencies of Ring-Sun-Planet gears can be arranged very easily. So I coded a mathematica script for the simulation as below:

rotateparametric[parfunc_, fixedpoint_, angle_] :=
RotationMatrix[angle].(parfunc - fixedpoint) + fixedpoint;
viewAngle = Pi/3;
ctrVolume = {(Exp[(Pi - viewAngle)*0.5] + 1)/2, 0};
radiusVolume = (Exp[(Pi - viewAngle)*0.5] - 1)/2;
radiusRing = (Exp[(Pi - viewAngle)*0.5] + 1)/2;
FPS = 720;
fOrbit = 5;
fPlanet = 9;
planetRotation =
0}, -2*Pi*i*fPlanet/FPS]
mirrorPlanetRotation =
0}, Pi - 2*Pi*i*fPlanet/FPS]
orbitRotation =
rotateparametric[planetRotation, ctrVolume, +2*Pi*i*fOrbit/FPS]
mirrorOrbitRotation =
rotateparametric[planetRotation, ctrVolume, Pi + 2*Pi*i*fOrbit/FPS]
TheCurves = Evaluate@Table[orbitRotation, {i, 1, FPS}];
TheMirrorCurves = Evaluate@Table[mirrorOrbitRotation, {i, 1, FPS}];
pp = ParametricPlot[{TheCurves, TheMirrorCurves}, {t, 0,
Pi - viewAngle},
RegionFunction -> (Norm[{#, #2} - ctrVolume] <= radiusVolume &),
PlotRange -> All]


I can set the rotation frequency of the planet gear (Hence the screens) and the sun gear in order as, fPlanet and fOrbit. Also another parameter is introduced here as FPS and yes it means frame per second. The logic is, if the FPS of the screens is 100 Hz, then the screens will be visible for every 10 miliseconds. If FPS was 200Hz, then the screen would be visible for every 5 miliseconds.

You know that a screen emits light in the direction in front of it. And it has a viewing angle (typically 120 degrees). A 100 Hz screen emits light 100 times in a second. So what I need to achieve is the cover as many directions as possible in second for a given FPS.

For example, if I set the parameters as below:

FPS = 120*3; fPlanet = 3; fOrbit = 10;

Then the locations of the screen in the holographic volume (Which is shown here as the circle with the dotted blue line) for each '1/FPS' seconds is drawed like below:

I should explain what I need in more detail. Yo see, this is a volumetric swept type 3D display device. Since it is a volumetric swept, the constructed 3D image within the holographic volume is meant to be viewed from every angle around it. So it is important that each voxel in the volume has 360 degrees visibility.

This is called voxel which is basically a simple discrete boundary in square shape. In this voxel, you see the screens different locations based on different refreshing times.

As you can see, this voxel cavers 360 degree visibility. However, this is not the case for each voxels in the volume. you can clearly spot some big gaps in between the curves. And if the voxel size is not big enough, those gaps are not visible to the viewers. And the ratio of gaps change with the change in the parameters. These are the examples:

FPS: 720 fPlanet: 9 fOrbit: 5

FPS: 720 fPlanet: 4 fOrbit: 5

FPS: 720 fPlanet: 36 fOrbit: 12

So, this is my question: How can I calculate fOrbit and fPlanet for maximum visibility? How can I show it with equations? Optimum fOrbit and fPlanet frequencies for maximum visibility?