YOU CAN BUILD A SPINNING DISK THAT PAINTS A FLOATING 3D GLOBE IN MID-AIR

A flat disk spins so fast it paints a full-color 3D planet floating in mid-air — persistence of vision as desktop furniture.

by Dan Foisy

FULL CAD BOM FIRMWARE DOCS

DisplaysOpen-hardware

difficulty
●●●●●
time
a long weekend-plus
license
MIT
repo
repo ACTIVE38 stars

WHAT YOU’LL NEED

  • 3D printer + filamentprintable parts — files are in the repo
  • Electronic partsfull list with part numbers in the repo BOM
  • Dev board / microcontrollerruns the project firmware

Partner

Reach your Pi from anywhereRemote desktop to the machine running this build — no port forwarding, works right from the browser.Try Getscreen.me
1

COMPAREE VERDICT

This is a proper showpiece — the kind of thing that stops a conversation when you turn it on — but it is also a gauntlet. You are synthesizing FPGA logic to drive 256 RGB LEDs at microsecond timing precision, spinning a board at 900 RPM on a slip ring that has to pass power and signal without flicker, and hand-placing surface-mount parts on a circular PCB. The repository gives you everything you need to replicate it — Gerbers, Verilog, Python control scripts, and a full BOM with supplier links — but it assumes you have built with FPGAs before, can balance a spinning disk without it tearing itself apart, and are comfortable debugging signal noise on a rotating reference frame. The single biggest trap is underestimating the mechanical side: cheap slip rings introduce flicker, vibration kills LEDs, and an unbalanced board at 900 RPM will walk across your desk. The non-commercial license means this is strictly for your own use. If you have the skills and the weekend, it is one of the most visually striking builds in the entire catalogue. If you have never touched an FPGA, start with something that does not spin.

NOT IN THE REPO

  • PCB Gerbers, FPGA firmware (Verilog), and Raspberry Pi control code are all in the repository.
  • No step-by-step build guide — the README is a parts manifest and a brief overview, not a tutorial.
  • Bill of materials names every part with supplier links, but no single consolidated order list.
  • Licensed CC BY-NC-SA 4.0 — non-commercial use only, you cannot sell the device or use it in a commercial product.
  • The FPGA toolchain (Lattice iCEcube2) is free but registration-walled; initial setup is not trivial.
  • Mechanical assembly (motor mount, slip ring, balance) is shown in photos but not documented in writing.

Can I build this?

PrintNothing required
BuyCustom circular PCB (order Gerbers), 256 WS2812B RGB LEDs, Lattice iCE40-HX4K FPGA, Raspberry Pi Zero, BLDC motor, slip ring, motor controller, acrylic mounting hardware, full BOM in repository
ToolsReflow oven or hot-air station for SMD assembly, Lattice iCEcube2 FPGA toolchain (free with registration), soldering iron, calipers for balancing
SkillsFPGA development (Verilog synthesis), SMD soldering, motor control, mechanical assembly and balancing — this is an advanced multi-discipline build
TimeA long weekend if you have done FPGA work before; a week-plus if you are learning the toolchain and debugging mechanical vibration
Cost$$$, dominated by the custom PCB order (circular board, 256 LEDs to populate), BLDC motor, and slip ring — expect $200–300 USD in parts depending on suppliers
SafetySpinning disk at 900 RPM — an unbalanced board can shed parts or injure fingers. Do not operate near loose clothing or hair. Slip ring carries mains-derived DC; insulate and strain-relieve all rotating connections.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

A desktop 3D printer that prints in full colorPartner · Kickstarter
A desktop 3D printer that prints in full color

HeyGears G1: 10M+ colors and transparent parts in one print, plus UV printing on flat objects. Figures, parts and labels — no painting.

See how it prints

Gallery

https://danfoisy.github.io/flicker/images/image1.png
https://danfoisy.github.io/flicker/images/image2.png
https://i.ytimg.com/vi/DpEewUsl8mg/maxresdefault.jpg

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the full BOM and order the circular PCB(Custom Gerbers are in /hardware — you will need to send them to a PCB fab that handles circular boards)
  2. 2.Install Lattice iCEcube2 and synthesize the FPGA firmware(Free toolchain but requires registration; the Verilog is provided, you compile and flash it to the iCE40)
  3. 3.Assemble and balance the mechanical stack(Photos show motor mount and slip ring placement; no written guide — expect to iterate on balance with test weights)
  4. 4.Flash the Raspberry Pi control software(Python scripts drive the display content; the Pi talks to the FPGA via the slip ring)

KNOWN ISSUES

  • The license is non-commercial (CC BY-NC-SA) — you cannot sell this, use it in a product, or display it in a commercial space.
  • Cheap slip rings introduce visible flicker or noise — the BOM recommends a specific model, do not substitute unless you understand rotating signal integrity.
  • An unbalanced spinning disk at 900 RPM will vibrate hard enough to damage itself or walk off your desk — budget time for iterative balancing with calipers and test weights.
  • The FPGA toolchain (Lattice iCEcube2) is free but not trivial to set up — if you have never built FPGA projects, expect a learning curve before the first successful synthesis.
  • There is no consolidated build order or step-by-step assembly guide — the repository assumes you can read schematics and photos and fill in the mechanical steps yourself.
  • Surface-mount soldering 256 LEDs on a circular board by hand is possible but slow; reflow (oven or hot-air) is strongly recommended.

Can I use a different FPGA or microcontroller instead of the iCE40?

The timing is tight — the FPGA drives 256 RGB LEDs with microsecond precision while the board spins. A microcontroller will not hit the frame rate. You could port to a different FPGA but the Verilog is written for the iCE40 and the pinout matches the PCB.

How loud is the motor at 900 RPM?

The repository does not specify noise level — expect audible hum from the motor and some air movement from the spinning disk. BLDC motors are quieter than brushed, but this is not silent.

Can I show different content, not just a globe?

Yes — the Raspberry Pi control software lets you load any spherical texture or animation. The display is a volumetric canvas; you send pixel data and the FPGA paints it in 3D.

Why is this rated difficulty 5?

You are combining FPGA firmware synthesis, SMD PCB assembly, motor control, and mechanical balancing of a high-speed rotating system. Any one of those is intermediate; all four together is advanced multi-discipline work.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

256 RGB LEDs spinning at 900 RPM, painted by an FPGA — and the whole thing is open hardware with Gerbers and Verilog in the repo. What would you display on yours first?

CompareeTEAM1mo agoedited

Practical notes from our verification: the repository is complete in terms of files (Gerbers, firmware, BOM, control scripts) but lean on prose — there is no assembly guide, the mechanical photos show the finished stack but not the steps, and the README assumes you know your way around FPGAs and can debug vibration on your own. The license is non-commercial, which is uncommon for hardware and means this is strictly a personal showpiece. The single biggest mechanical trap — emphasized in every POV spinning display — is that an unbalanced disk at this speed will destroy itself; budget time for iterative balancing before you spin it at full RPM. The visual effect is genuinely spectacular when it works.

Dan Foisy

Dan Foisy built Flicker as a persistence-of-vision volumetric display — the desktop version of the spherical LED installations you see in museums or public art. The project synthesizes FPGA logic, custom PCB design, and mechanical engineering into one visually impossible object.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.