Email or username:

Password:

Forgot your password?
57 comments
James Brown replied to James

I really need to get a hobby where missing my framerate target doesn't make me physically nauseous.

James Brown replied to James

I am having so much fun with this thing.

The spinning voxel display again. This time it’s showing a doom monster facing off against the green doom guy. They’re just floating above a turntable. It’s like magic.
James Brown replied to James

I've implemented parts of a content pipeline for rendering a scene on the PC and streaming it to this display, but writing video streaming code is so much less fun than playing with voxels that it may take a while to finish.
Here, I've stored the animation uncompressed on the display itself, and am updating it as fast as the Pi's SD card can handle. (Not very fast.)

James Brown replied to James

My target for this display is 600 rpm - lower than that and it's too flickery; higher than that and I can't refresh fast enough to get 400 voxels around the circumference without dropping to 1 bpc. I'm nudging 400 rpm here, and it's still pretty unfilmable and absolutely terrifying to be close to. I have to decide whether the overall approach is worthwhile enough to start spending money on aluminium and polycarbonate.

James Brown replied to James

Slightly higher rpm, slightly longer shutter.

James Brown replied to James

The other problem I have is that to sell the 3D effect I need to move the camera around a lot, so I'm going to have to put some effort into building a studio backdrop.

James Brown replied to James

Incidentally, those models are from Cheello's voxel Doom: moddb.com/mods/doom-voxel-proj - It's a lovely mod, and makes Doom feel more like my memories of playing it than the real thing does.

James Brown replied to James

I had a panel left over, and I thought I should have another stab at an oscillating display. I wanted to give it an undulating motion and came up with what seemed like a nice linkage, but the end result looks like it was designed by Trevithick.

James Brown replied to James

It's a nice fluid motion on the panel, but overall it doesn't bring me joy.

James Brown replied to James
James Brown replied to James

Guess I’m doing a cone next.

Two homebrew 3D displays - one cylindrical, one spherical.
James Brown replied to James

There must be at least 6D here.

James Brown replied to James

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.

James Brown replied to James

I mean, you should have seen it before.

Shot through the dome of the back of the voxel device. Two hub75 panels, a Pi, and an interface board all connected by quite a bit of wiring which isn’t exactly neat, but is at least firmly cable tied in place.
James Brown replied to James

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.

A shot of the back of the voxel display. There's a gap where a Raspberry Pi used to be, and the wiring now runs down through a hole in the turntable, where a bit of green PCB peeks out.
James Brown replied to James

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.

A 3D printed component consisting of a flat disk with a pillar sticking up from it. The pillar looks as though it should be perpendicular to the plate (as it should), but it very visibly isn't.
James Brown replied to James

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.

James Brown replied to James

I continue to fail to shoot footage of it that does it justice.

James Brown replied to James

This feels like a good match of style and content.

James Brown replied to James

I’m now suspicious of all the PLA parts. The little pit with the Pi in it is getting very warm.

Thermal image of the voxel display - cool blue for the dome and supporting fins, warm orange below (33 C but the colour scheme makes it look as though it’s glowing hot)
James Brown replied to James

kind of feels like it needs monsters?

James Brown replied to James

I do like an ample window and natural light, but it makes it hard to see the leds. Hence this pirate astronaut.

The volumetric display from upthread. It’s in front of an overexposed window, and has a tee shirt stretched over its dome like a scurvy headscarf on a space helmet. Kind of.
James Brown replied to James

Doom running at a larger scale. Easier to make out what's going on, harder to see what's shooting at you.
youtu.be/bRe1OSkeiQg

James Brown replied to James

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.

James Brown replied to James

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.

James Brown replied to James

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.

James Brown replied to James

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.

James Brown replied to James

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.

A half assembled contraption sits on a messy desk. Floating above it, a slightly scruffy collection of glowing dots outline a wireframe representation of the Dream Chaser space plane.
James Brown replied to James

Dynamic balancing using a tray of marbles and iPhone slowmo.

James Brown replied to James

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. youtu.be/gBfclb9hXCI

James Brown replied to James

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.

A picture of a transparent plastic sphere (the dome for an outdoor lamp), nestled in its packaging.
James Brown replied to James

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.

A picture of the current 3D display. A bare chassis supports a blurred spinning led panel. On the base is a small circular lcd displaying a polar plot of acceleration - a blobby red lobed shape, a blue circle, and a green line pointing in the blobbiest, lobiest direction.
James Brown replied to James

2D video of 3D projection of 4D object.

James Brown replied to James

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.

A transparent plastic dome with a Dremel mounted to it in a 3D printed jig.
James Brown replied to James

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.

A photo of a truncated dome sitting on a bench. Behind it is the chassis of the volumetric display that it will eventually be mounted on.
James Brown replied to James

25 fps. That's an actual frame rate.

James Brown replied to James

Taking it all apart so I can film myself making it.

The core of my volumetric display - a black half-cylinder containing a Pi and associated electronics, some carbon fibre rods, and a ludicrously oversized bearing.
James Brown replied to James

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.

A clip-in power socket sitting slightly out of its housing.
James Brown replied to James

Easier to see the 3D when it's only the camera that's moving.

James Brown replied to James

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.

A volumetric display sitting on a desk. A plastic bubble contains the floating image of a Smart Car. It’s supported by a green plastic stand with a single dial on the front reading “30”.
James Brown replied to James

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.

James Brown replied to James

What this thing needed was another source of barely recognisable low res flickery points of light.

Go Up