Two designs, neither built. The original four-Spark rack remains below. The new direction is a repeatable two-Spark module with its power supplies underneath, shown here as an eight-Spark tower. This is a packaging study, not a fabrication release or a tested cluster.
New concept: two-Spark modules, eight-Spark tower
The module is the useful unit: two front-facing Sparks above a shared underfloor PSU compartment, an open frame, and rear tie points for cable management. The cassette arrangement keeps the bricks inside the module footprint rather than hanging them outside the frame. Removal, guides, and retention still need mechanical detailing.
The two-Spark building block
What changes from the original
| Original four-Spark design | New modular study |
|---|---|
| Two paired Spark rows; a separate shared PSU tray | A PSU compartment underneath each paired row |
| Switch below the compute rows | Switch between upper and lower row groups, intended to reduce vertical cable runs |
| Compact extrusion rack around a CRS504 | Repeatable module with a deeper full-tower carrier; switch selection and networking remain open |
| Four nodes in the illustration | Eight nodes in the illustration, not a statement of installed hardware |
What the CAD does—and does not—prove
The images are orthographic isometric renders of solid OpenSCAD geometry, not generated concept art. Spark bodies use the published 150 × 150 × 50.5 mm envelope. The 40 mm gap is a conservative layout choice; it should not be read as an explicit NVIDIA requirement for adjacent devices. PSU sizes are estimates, and switch, smart-plug and power-strip geometry must be checked against selected hardware.
The original CRS504 specification below does not describe the deeper switch shown above. The new switch is a provisional envelope. An eight-node network needs its own verified port count, topology, optics or DAC choices and cable routing. The drawing does not establish those.
Before printing or buying frame parts: measure the actual accessories; design device retainers, cassette guides and stack joints; verify print orientation, bed fit, load paths and tip resistance; check airflow and heat soak; and size the complete AC distribution for simultaneous load. The base power accessories are illustrative, not an electrical design. A clean render is not proof of fit, cooling or structural safety.
Download the editable OpenSCAD concept (default: paired underfloor module; set assembly=true for the tower). The source also retains the overhead-PSU and independent-pod alternatives; the underfloor arrangement is the direction shown here.
Original four-Spark design — August 22, 2026
Preserved original study. The text, specifications, renders and next steps below describe the August 22 design, not current ownership or build status. Its absolute fit and cooling statements remain unvalidated design assumptions. The newer concept above does not replace this design.
Design outline — nothing is built yet. We run two DGX Sparks today and want a home for four, plus the switch that clusters them, plus the power monitoring we already use, in something that sits on a desk instead of hiding in a closet. This post is the design study: NVIDIA's actual clearance specs, a dimensionally-true CAD model, and the decisions we've locked so far.
The constraints
Everything follows from a handful of published numbers. The DGX Spark Quick Start Guide specifies clear space around each unit: 10 cm front, 2 cm per side, 40 cm rear. Front is intake, rear is exhaust — all I/O (power, QSFP, RJ45, USB-C, HDMI) exits the rear; the front face is nothing but the sparkly intake mesh. Two adjacent Sparks therefore need 4 cm between them — each unit's 2 cm zone is its own, not shared with a neighbor's exhaust wall.
| Component | Dimensions (W×D×H) | Notes |
|---|---|---|
| DGX Spark ×4 | 150 × 150 × 50.5 mm, 1.2 kg | Front intake, rear exhaust, rear I/O only |
| 240W PSU brick ×4 | ~175 × 75 × 30 mm | External; runs warm; keep out of intake path |
| MikroTik CRS504-4XQ-IN | 320 × 185 × 44 mm | 4× QSFP28 100G, 41W max — the proven 4-node Spark cluster switch |
| ThirdReality Smart Plug Gen3 ×4 | ~38 × 62 × 60 mm standing | Per-node power telemetry — same plugs from MHR 001 |
| 5-outlet power strip | ~300 × 60 × 40 mm, outlets up | 4 monitored nodes + 1 spare outlet |
| Corner retainers ×16 | 25 × 25 × 12 mm, printed | L-shaped tabs at each Spark corner — 1.2 kg units + stiff DACs need them |
The layout
Open-frame 2020 aluminum extrusion, five levels, bottom to top:
- Power level — a 5-outlet strip lying flat, outlets up, with four Gen3 smart plugs standing in it. LEDs and buttons face forward. The fifth outlet feeds the switch (or the fan). Per-node watts flow into the same Home Assistant → Prometheus → Grafana path we built for MHR 001.
- Switch level — the CRS504. Its 320 mm width slots neatly into the 340 mm bay.
- PSU tray — all four 240W bricks side-by-side, narrow face forward, cords exiting rear. Their heat never enters a Spark intake.
- Spark rows 1 and 2 — 2×2 grid, 40 mm side gaps, 25 mm vertical gaps, clean gold fronts facing the operator. Each Spark sits inside four printed L-shaped corner retainers (12 mm tall, 0.8 mm clearance) so a tug on a stiff DAC can't walk a 1.2 kg unit off its shelf.
Airflow
The Sparks pull front-to-rear. The frame is open on both faces, so NVIDIA's 10 cm front / 40 cm rear clearances are satisfied by rack placement, not rack design — the one siting rule is don't back it against a wall closer than 40 cm. The shelf plates are slotted (12 mm slots on a 24 mm pitch, running front-to-back) so warm air rises through the stack instead of pooling under each level — the PSU bricks in particular benefit from a vented plate above and below.
We considered and dropped a front-mounted 200 mm fan. Four Sparks at 140W TDP each are self-cooled and within spec in any reasonable room; passive convection through the vented shelves does the rest. Fewer moving parts, no fan controller to build, nothing to hum.
What's decided, what's open
| Decided | Open |
|---|---|
| 2×2 Spark grid, fronts out, all cables rear | Extrusion vs. 3D-printed frame members |
| 40 mm inter-Spark gap (2 cm per unit, per spec) | Retainer print material (PETG likely) and exact clearances |
| PSU bricks on their own tray, out of the intake path | Slot pattern tuning if shelves are printed vs. cut |
| CRS504 + four QSFP28 DACs at 100G | Exact power strip (need ≥45 mm outlet pitch for the Gen3s) |
| Vented shelf plates; corner retainers on both Spark rows | Extrusion cut list and hardware BOM |
| Per-node Gen3 smart plug monitoring | No fan — decided against (see airflow note) |
Next steps
- Print the corner retainers and PSU tray on the Bambu H2C (arriving this week); retainers are a perfect first functional print — small, tolerance-driven, PETG.
- Extrusion cut list and hardware BOM.
- Two more Sparks.
The parametric OpenSCAD model lives in the lab repo — every dimension in this post is a variable, and the renders above are the model, not an artist's impression.