Volumetric additive manufacturing · 405 nm
HoloForge
A layer-by-layer printer draws an object. HoloForge makes light from several rotary angles intersect only where the object should cure, and the resin sets all at once: one part, under fifteen seconds, no supports. The optics, the photochemistry and the machine are modelled, so the whole chain runs before the hardware is finished.
What it does
01 · One exposure, one partA printer that draws an object builds it up. HoloForge cures it all at once. Light is projected into a vat of photopolymer from many angles in turn; each path delivers a fraction of the dose its resin needs. Where enough paths overlap, the accumulated dose crosses the gel point and the resin sets. The part appears where the beams agree, and nowhere else.
Two things follow directly from that. Because nothing is built up, there is nothing to hold up: the part forms surrounded by liquid and needs no support structures. And because there are no layers, there are no layer lines — no stair-stepping across a curved surface, and no anisotropy from curing one slice at a time.
- No supports. The part is supported by the liquid it forms in, from every side at once.
- No layer lines. Surface finish is set by the optics and the chemistry, not by slice height.
- No support-removal step. Nothing to cut away and no witness marks to grind back.
- Height stops costing time. A tall part takes as long as a short one, because the whole volume cures together.
What it prints, and where it matters most
Nothing in the machine is specific to a part. There is no tooling, no build plate, no orientation to choose and no support strategy to plan: any mesh that can be described as a solid can be voxelised into the target volume and optimised the same way. The limiting factor is the size of the vat and the reach of the optics, not the shape inside them.
The parts below are therefore not the scope of the machine. They are the cases where the two properties stop being conveniences and start being requirements, which is why they are the ones worth naming.
Any geometry you bring
The general case, and the one the pipeline is built around: an arbitrary mesh, voxelised and optimised with no per-part tooling and no orientation to choose.
Dental crowns
Fitted parts where a layer line is a rejection, and where the support marks left by a conventional print have to be ground away.
Microfluidic chips
Internal channels that a stair-stepped surface would obstruct or distort.
Aspheric optical lenses
Surfaces where roughness changes the optical result, printed without the anisotropy of layered curing.
How it does it
02 · Five steps, then the parts- Optimise the projections. The target mesh is voxelised, then the set of holograms that will produce it is solved for over the whole volume, not slice by slice.
- Shape the wavefront. A 405 nm laser is expanded and spatially filtered through a 25 µm pinhole, then phase-modulated. Double-phase synthesis lets a phase-only modulator control amplitude as well.
- Project and accumulate. A 4f relay demagnifies the pattern by 0.25× into the vat. A rotary stage presents the resin to each angle in turn, and dose accumulates where the paths cross.
- Measure. A machine-vision camera behind a 405 nm bandpass filter images the wavefront and the fluorescence point-spread function, so cure agreement is a number rather than an impression.
- Drive it. One Python package runs the optics, the optimisation, the kinetics and the hardware; an Arduino image on the controller board drives the stage, the shutter and the display.
- The chemistry is the hard part. Oxygen dissolved in the resin inhibits the radical reaction, so where curing actually begins is decided by an inhibition term as much as by the light.
- The cycle is closed. Measured cure is compared against the target volume and fed back into the next set of projections.
- It runs before the hardware does. The optics, the kinetics and the machine are modelled, so the whole chain runs on a laptop: measured result is 94.6–96.7% cure IoU with under 0.02% overcure, in simulation.
The implementation
holoforge/optics.py
Wavefront synthesis
Split-step angular spectrum propagation with 4f telecentric spatial filtering, and double-phase hologram synthesis so a phase-only modulator can also shape amplitude.
holoforge/optimize.py
Tomographic optimisation
Closed-loop multi-angle optimisation over the target volume. The measured result is 94.6–96.7% cure IoU with under 0.02% overcure, in simulation.
holoforge/kinetics.py
Photochemistry
A coupled radical polymerisation and dissolved-oxygen inhibition ODE solver, because the oxygen in the resin is what decides where curing actually starts.
holoforge/metrology.py
Metrology
A virtual white-light interferometric profilometer reporting Ra, Rq and Rz, so surface quality is a number rather than an impression.
holoforge/hardware/
Machine control
G-code rotary stage over USB serial, fullscreen phase-SLM presenter on a secondary display, 405 nm shutter with a safety state machine, and a synchronous print runner.
holoforge/backend.py
Compute backend
The propagation and optimisation loops run on CPU or GPU, picking up CuPy or Torch CUDA where it is available.
What it changes
03 · What it costs, and what is still modelledVolumetric printing has stayed a laboratory technique partly because everything around it is laboratory equipment. This build is a bench of catalogue parts: a diode laser, a spatial filter, a phase modulator, a 4f relay and a quartz vat, on a breadboard, driven from one Python package.
The modulator carries most of the cost, and it is the only part that does. Everything else is standard optics, which is what puts the approach within reach of a bench rather than an instrument suite.
- A print is an exposure, not a build. A part is finished when the dose finishes, whatever its height.
- Post-processing shrinks. No support removal, no witness marks to finish, no orientation chosen to avoid overhangs.
- Geometry stops fighting gravity. Nothing has to be laid down on top of anything else, so overhangs and internal voids are just geometry.
| Part | Specification | Budget |
|---|---|---|
| Laser | 405 nm single-transverse-mode, 100–500 mW CW, linewidth under 0.5 nm | €600–1,200 |
| Phase SLM | Lab-grade phase-only reflective LCoS, 1920×1080, 8.0 µm pitch, calibrated 0–2π at 405 nm | €5,500–6,800 |
| Beam expander | 25 µm pinhole with 5–10× variable magnification for flat-top pupil illumination | €400–650 |
| 4f relay | Achromatic doublets, f₁ 200 mm to f₂ 50 mm, M = 0.25× demagnification, AR coated 400–700 nm | €450–800 |
| Optomechanics | 30 mm and 60 mm cage plates, precision posts, kinematic mounts, breadboard base | €800–1,200 |
| Test vat | Optical-grade fused quartz cell, AR-coated windows under 0.2% reflectance at 405 nm | €150–350 |
| Metrology | USB3 machine-vision CMOS with a 405 nm bandpass filter for wavefront and fluorescence PSF imaging | €300–600 |
| POC dyes | Rhodamine 6G and sodium fluorescein in ethanol, for 3D focus-spot profiling | €100–300 |
| Stage 1 target: demonstrate dynamic spot focusing into dye-doped liquid cells | €8,300–11,900 | |
The train is driven from one Python package plus an Arduino firmware image in firmware/holoforge_controller, and the bill of materials is kept in the repository as it changes.
- The fifteen seconds is a simulation result. The optics and the kinetics are physical models; the machine that would measure a real print is not built yet.
- Stage 1 is a bench, not a printer. The alignment bench proves dynamic spot focusing into dye-doped liquid cells before any resin is cured.
- Stage 2 is the volumetric cure. Photopolymerisation into a solid part follows the bench, and the bill of materials prices Stage 1 only.
What exists now
04 · The simulator and the benchHoloForge ships a complete optical and photochemical simulator plus a mock hardware emulation layer, so the same code path that drives the bench runs on a laptop: synthesise holograms, load an .stl, inspect the optical dose and the surface profilometry, and run a simulated rotary print with virtual Schlieren camera feedback.
git clone https://github.com/KELLERBABG/HoloForge cd HoloForge py -m pip install -e . py -m holoforge --help # the command surface py -m holoforge render --help # synthesise a hologram py -m holoforge print --help # simulate or drive a rotary print
Where the hardware stands
- Stage 1 is a bench, not a printer. The alignment bench proves 3D dynamic spot focusing into dye-doped liquid cells before any resin is cured.
- Stage 2 is the volumetric cure. Photopolymerisation into a solid part follows the bench, and the BOM prices Stage 1 only.
- The fifteen seconds is a simulation result. The optics and the kinetics are physical models; the machine that would measure a real print is not built yet.
- Release 2.0.0 is the software. dist/HoloForge-v2.0.0-release.zip contains the package, the simulator and the mock drivers.