Shiny! (Maybe too shiny. )
Guess I’m doing a cone next.
There must be at least 6D here.
I rewired the back of the panel to tidy up all the loose flappy cables. It now manages 600 rpm, which is not too flickery.
I mean, you should have seen it before.
In the continuing quest for higher rpm, I've moved the controller down below the screen and across the axis of rotation. It's a lot harder to get at if I need to rewire anything, but it does improve the balance.
It feels as though I'm endlessly rebuilding it, for diminishing improvements. But in the most recent rebuild I finally solved a mystery that has been bugging me. When the display had been running for a while, it would quite abruptly lose balance and start vibrating. After the last occurrence, it was never quite the same. On stripping it down I found this.

That's the mount for the slip ring. A cylinder carrying a couple of copper bands fits over the pillar, and an M4 bolt goes own the middle to hold it all together. It has very clearly become bent, and without any signs of cracking. Presumably, as it spins, it heats up enough to soften the PLA, and the spring loaded brushes push it out of alignment.

I've reprinted it in ABS; going to see how well that lasts.

Pi 4 model A
I continue to fail to shoot footage of it that does it justice.
This feels like a good match of style and content.
I’m now suspicious of all the PLA parts. The little pit with the Pi in it is getting very warm.
kind of feels like it needs monsters?
Voxel Doom

YouTube
I do like an ample window and natural light, but it makes it hard to see the leds. Hence this pirate astronaut.
Doom running at a larger scale. Easier to make out what's going on, harder to see what's shooting at you.
https://youtu.be/bRe1OSkeiQg
Voxel Doom

YouTube
This display works by spinning a matrix display rapidly about a vertical axis, lighting up each LED as it passes through part of a 3D image. The way you update the displays has a big impact on the quality of the image.
In this gif, each dot represents a column of LEDs - we're looking at the device from above. Here the panel is treated like a 2D display which just happens to be moving. Each scan line is repeatedly visited in turn, sweeping out a set of slices where the image can be displayed.
If you turn the panels 90 degrees so their scan lines are now columns, you can do a bit better. The update doesn't have to be sequential - instead of stepping one column at a time, you can skip a few each time. As long as you pick a number which is coprime with the number of columns, and you wrap around once you go past the last one, you'll still visit each of them but spread out more evenly throughout the volume.
The real improvement comes when you adjust the update rate for each column to match the length of the track they have to sweep out. Instead of wrapping around when you reach the last column, you wrap around when your counter reaches the square of the number of columns, and you update the column corresponding to the integer square root of the counter. This gets rid of the bright dense region in the middle, and adds more updates out at the edges making them less sparse.
In practice it's complicated by the fact that these panels update two lines at once. Every time you update a column in the outer half, you're also updating one in the inner half. I couldn't find a simple procedural update strategy to spread these evenly, so I ended up generating a lookup table for it using simulated annealing.
First test of the new design, and already I’m happy. Quiet, high refresh rate, and doesn’t feel like it’s seconds away from embedding itself in my face.
Dynamic balancing using a tray of marbles and iPhone slowmo.
These guys.
- YouTube

Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

So many complaints about the framerate on that last video, so I decided to upload one with a shorter exposure and more flicker. But I still ended up keeping it below 30 fps, so I suspect the complaints will be about both framerate and flicker. Just have to hope the algorithm doesn’t go so large on this one. https://youtu.be/gBfclb9hXCI
- YouTube

Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.

New dome!
There are many advantages to moving to smaller panels in the new design (momentum etc), but the price drop going to a 300mm dome from 400mm would be justification enough.
There’s now an accelerometer in the base, synced to the rotation of the screen. I’m hoping this will help me get it balanced better. I don’t entirely understand the shape it’s producing, but the line is pointing in roughly the direction I think it should be pointing.
2D video of 3D projection of 4D object.
Original voxels
There’s a fair bit of planning involved in finding the true centre and height of these domes. When I come to make the cut it feels like cleaving the Cullinan diamond.
With the previous dome the cut had a somewhat hand made look to it, so I printed a thin piece of trim to slip over the edge and keep it neat. It was too big for the printer so I used TPU, printing it in a spiral and flexing it back in to the right diameter. An unexpected benefit was that it was way quieter with that isolating the dome from the base.
This time the cut went better, but I’m still going to give it a gasket for that reason.
Enbubbled.
25 fps. That's an actual frame rate.
Taking it all apart so I can film myself making it.
Now thinking I should have filmed the tool I made to press all the clips on this IEC socket so I could get it out of the housing in order to film the satisfying click it makes when it goes in.
Easier to see the 3D when it's only the camera that's moving.
Meme crustacean
Yet another round of finding new places to hang counterweights, and I’ve hit 900rpm - 30fps. Amazing to scroll back to the start of this thread and see me wonder if I could get some sort of rudimentary depth effect going.
https://www.youtube.com/watch?v=ydk3BhlUWYE I've been working more on capturing footage. Hand held camera movement is still a mess, but putting the content into rotisserie mode helps sell the 3D with a static camera.
Volumetric fish bowl

YouTube
@ancientjames that looks amazing! It needed a perfect loop. 😁
@jasoncoon Thank you!
×
Everyone needs to build one of these displays so I can spend my time writing games for it.
Amazing what these Arm processors can do.
(Thanks to @markmoxon for so thoroughly documenting the original Lander source https://lander.bbcelite.com !)
Fully documented source code for Lander on the Acorn Archimedes

Fully documented source code disassembly for Acornsoft Lander on the Acorn Archimedes, with lots of deep dive articles explaining how every aspect of the game works.

Lander on a Volumetric Display

YouTube

Once again, the video really doesn't do this justice. I'm just going to have to invite you round one at a time to play it in person.

GTA on an actual hologram*

https://www.youtube.com/watch?v=9XWmm2OU4LU

GTA on a Volumetric Display

YouTube

There are projects I do because I want to make the thing, and projects I do because I want to have the thing, and this is pretty much a perfect balance of the two.

I spent the best part of a year nervously running the various prototypes up to speed for a short demo then pulling them apart to fix the current worst bit.
It's so much fun to now be using it as a device to play with in its own right.

OK, the code is now available here:
https://github.com/AncientJames/multivox
GitHub - AncientJames/multivox

Contribute to AncientJames/multivox development by creating an account on GitHub.

GitHub
@ancientjames Can't tell you excited I am about this! I will need to write a gadget file to map based on my adafuit hub75 HAT. It would be very useful to see at least the pinout of your HUB75 board.

@Chrismofer The pinout is in the first ~30 lines of the gadget header.

There's a table in the rpi-rgb-led repo that gives the adafruit pinout: https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/wiring.md . It uses '~OE' where I use 'Blank', but otherwise it should just be a matter of copying the values across.
That board only supports one chain (I don't know if there's another model). Setting the second chain to the same gpio mapping as the first should effectively disable it.

rpi-rgb-led-matrix/wiring.md at master · hzeller/rpi-rgb-led-matrix

Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO - hzeller/rpi-rgb-led-matrix

GitHub
@ancientjames I was just browsing the github and even at a glance I can appreciate the amount of work you’ve put into documenting things clearly. Thank you so much!
@subROV Thank you!
At first glance I thought your avatar was the old Criterion game, Sub Culture (which is low poly and short view distance, and would probably work well on the orb)
@ancientjames that’s incredible.
@ancientjames This reminds me of the lidar point cloud created by self driving cars. It's great
@ancientjames you had to write your own game engine driver?! this is so cool
@reconbot I used the reverse engineered GTA source from https://github.com/halpz/re3 and did some *very* quick and dirty hacks to intercept most of the relevant draw calls and voxelise them.
It's very playable though, and looks amazing through two eyes!
GitHub - halpz/re3

Contribute to halpz/re3 development by creating an account on GitHub.

GitHub
@ancientjames Always impressive. I think Super Stardust would be another good contender game. It's Asteroids-like, but the playfield is completely constrained to the orbit of a rotating planet.

@ancientjames
I wonder what your volumetric display would look like mounted underneath a sheet of that ASKA3D floating display glass

https://youtu.be/uMe7RNvCW6g
[Maker Mac70] used multiple flat LCD screens but a POV volumetric display seems like the next logical upgrade

How I built a working Holochess table

YouTube
@ancientjames OMG perfect choice of game for it.
@ancientjames glossing over the fact you own a homemade orb
@ancientjames Just imagine if, some day, they crank the CPU past 8 MHz.
@ancientjames I'm waiting for BOOBS displayed that 3d screen. Then the revolution will be completed.
@ancientjames In real life fdo the pixels really look like tiny light dots? Incredibly cool :)
@ancientjames They were literally born for this! ;)

@ancientjames omg I want one but probably cannot afford 🤩😭

This looks beyond astonishing

@ancientjames that work of yours is really impressive.

Did you build the display yourself?

@alois yes, and there's even a video of me building it https://www.youtube.com/watch?v=pcAEqbYwixU
Vortex Assembly

YouTube

@ancientjames that is absolutely amazing!
Thanks for sharing all the STEP files.

What kind of refresh rate are you getting?

@ancientjames and on such little power!
@ancientjames the problem with rotary type displays is that you can't have anything in the middle 🤔 the reciprocating display type would handle it better bit I guess it would be louder
@ancientjames the Lander demo is one of the cornerstones from my childhood that got me into programming games so this image is hitting me right in the feels

@ancientjames
I reckon you would sell a run of 100 in no time, maybe 1000, perhaps more.

Perhaps a batch of 10 first for debugging.

The old vector graphics arcade game Tempest might translate well to your display.

@ancientjames I was looking at building one in the local nerdspace when I saw you have a github, but stopped since there’s no software (no criticism, we all admire your work)
@subROV I’m going to put the software on github but I’m making an explanatory video to go with it.
@ancientjames thank you!! 🥺😭👏👏
Virus

Virus is an Amiga 3d shoot'em up game released in 1988 by Firebird.

Lemon Amiga

@ancientjames

I once saw a 3D display that consisted of a cabinet with a speaker and vector monitor mounted overhead. There was a mirror in front of you that you treated as “the display” (the thing you looked at). The “speaker cone” was a sheet of reflective mylar, the speaker would vibrate it at 24-60 Hz, changing the focal depth of the virtual image, which reflected the contents of the monitor, timed to match the depth of the virtual image. That virtual image was what you saw in the mirror in front of you.

Ah, here we go: https://ui.adsabs.harvard.edu/abs/1988SPIE..902...10S/abstract

Spacegraph, A True 3-D Pc Peripheral

The SpaceGraph technology has been packaged as a table-top display station that is a peripheral device for an IBM PC/AT or compatible. It produces 3-D graphics by oscillating the virtual image of a CRT through space while synchronously writing on the screen. In the resulting display volume, one sees a self-luminous, high-contrast, sharp, model-like figure composed of points, lines, and alphanumerics. Optical means include a varifocal plate mirror and a specially designed, large-screen, directed-beam monitor. Electronic means include a controller on a card for an IBM PC/AT or compatible. Software running in the PC allows one to describe a 3-d picture in high-level terms. The controller card can display two pictures at once, and each is double-buffered. A run-time-writable brightness-lookup table takes advantage of 8-bit brightness tags on all 32k displayable points. The software interface is command-driven and includes general and command-specific help. It is capable of getting commands either from files, from the keyboard, or from a combination. Commands take intuitive forms, such as line (3,4,5) (1,2,6) or text (2,4,3) "abc" and locations in space may be given names for convenience of future reference. Additional features are autoscaling, a cursor, and saved display lists. Existing application software can most easily interface to SpaceGraph by writing out files of such commands. An example is the supplied interface to BBN's proprietary software product, RS/1.

ADS
@lain_7 @ancientjames
I found the paper on "https://www.cs.unc.edu/~fuchs/publications/Design%20of%20and%20image%20editing82.pdf"
In fact, my ideal of floating 3d pov dispaly is similar, just rotating midair-mirror instead of vibrating mirror and led pannel instead of crt.
@ancientjames Maybe someone can transplant nds or n64 emulator.
@ancientjames damn! how does the level of translucency look in real life? about the same?
@halcy it’s pretty representative. In real life the colours all seem to pop more, and the 3D means it’s visually well separated from the background and reflections.
@ancientjames it's on my own wishlist for next year - hardware and time permitting 😁 Have really enjoyed seeing the results you've had with yours!
@ancientjames idk that i've ever seen a display like this - neat!
@ancientjames now do I build the full size one, or a tiny one that fits in a Lego brick 🤔