Modular · 3D-printable · Pen & paper terrain

PEGHOLD.

A physical level-design toolkit. Seventy-one primitive parts — rectangles, cylinders, cones — that snap onto a peg grid to build any town, dungeon, inn or keep your table needs. Everything is a box or a circle on purpose: it prints in an hour, reads instantly across the table, and never fights the imagination for authorship.

Open the 3D viewer → every part and every layout, at true scale, with a 28 mm figure for reference
25 mm1 U — one square
12.5 mmpeg pitch
Ø4.0 mmthe only connector
71parts in the set
0supports needed
01

The standard

One connector, one grid, one height. Every part in the system obeys these four numbers, which is what makes a wall printed today fit a tower printed next year.

1U = 25mm

The square

One grid square, one mini. Wall height is also 25 mm, so 1U cubed is a cube — stacks, decks and floors all land on multiples of the same number.

12.5mm

The pitch

Pegs sit at half-square intervals. Walls land on grid lines; furniture lands on square centres — both hit the same peg field, so nothing needs its own baseplate.

Ø4.0 × 3

The peg

A 4 mm peg, 3 mm tall, 0.6 mm top chamfer. Socket is Ø4.3 × 3.4 deep. That's the entire mechanical vocabulary of the system.

4mm

The wall

Walls are 4 mm thick and straddle the grid line. A room's inside dimension is n×25 − 4 mm, which is still comfortable for 25 mm bases.

Ø4.00 3.0 3.4 SOCKET Ø4.30 · every underside PEG Ø4.00 · every top face 0.15 mm radial clearance — friction fit, no glue
1U = 25 mm — one square, one mini walls on the line props on the half-grid
R0
The plug system is the base layer only. Plates and tiles interlock — that is the whole of the Lego-like part, and it exists so the ground stops sliding around. Everything above it is an RPG tile: you set it down, you pick it up, you move it mid-scene. The pegs are there to be optional.
R1
Pegs up, sockets down. Always. A socket is a hole starting at the print bed — perfect on any printer. A peg is a 4 mm cylinder in open air. Nothing in the set needs support material.
R2
Height is additive — you never dig down. There are no deep pit tiles. To get a chasm you raise everything else on B-07 risers. One rule, and the whole set stays 4 mm thin and flat-packable.
R3
Blunt silhouette, free surface. A table is a cylinder on a cylinder — shapes stay primitive. But the face of a tile costs nothing: in XY the printer resolves to about 0.4 mm, finer than any symbol a map needs. So detail lives in the surface as lines, not in the outline as blocks.
R4
Walls carry pegs on top. So walls stack into towers, decks drop onto walls for a second storey, and crenellations cap the lot — with the same connector as everything else.
02

The parts

Seventy-one parts in seven families. Codes are permanent — a part number never changes meaning, so a build list written today still works after the set grows.

03

Sample builds

Four layouts drawn from the catalogue, with the exact parts list under each. Plans are true to scale — 1 square = 1U = 25 mm. Heavy dashed lines are baseplate seams.

04

Printing it

The set is tuned for a stock 0.4 mm nozzle in PLA. The only number that matters is the socket diameter — print the fit comb (X-01) first and pick your tolerance before printing 40 walls.

SettingValueWhy
Layer height0.20 mmPeg height 3.0 = 15 clean layers
Perimeters3Sockets need wall to grip against
Infill15% gridWalls stay light; plates stay flat
Top / bottom4 / 3Peg tops must not pillow
SupportsnoneNothing overhangs past 45°, by design
Brimoff / 3mmOnly for the 100 mm baseplates if edges lift
MaterialPLAPETG creeps and the clutch goes slack
Plate time~55 minFour 2U walls, or one 4×4 baseplate
Do this first. Print X-01, the fit comb: six sockets from Ø4.10 to Ø4.60 in 0.10 steps, plus one peg. Push the peg into each. You want the one that holds a wall upside down but releases with a thumb. Then set SOCKET_D in the .scad to that number and print everything else. On most printers it lands at 4.30–4.40.
SymptomFix
Walls fall offSocket too big — drop 0.1 mm
Plates crackSocket too tight — add 0.1 mm, chamfer the mouth
Pegs look squashedOver-extrusion; add a 0.6 mm top chamfer, slow top layers
Baseplates rockBed not flat — print plates first, they're the datum

Starter box — one weekend of printing

Enough to build any of the four sample layouts and most things in between. Roughly 26 hours of print time and about 480 g of filament.

05

First run: the blue batch

Nine parts printed in one azure spool, in an order that gets something usable on the table after 45 minutes. Water is the right family to start with: it is all flat plates, it needs no paint to read as water, and a plain baseplate in blue is open sea — so the cheapest part in the set is also the biggest piece of terrain.

Tune the comb in this filament, not another one. Socket grip varies by brand and colour — pigment loading changes how PLA shrinks. X-01 is the first thing on plate 1 for that reason: print it, find your number, set SOCKET_D, then run plate 2. Everything after that fits everything else.

Want to see it before you commit filament? Open the 3D viewer — the first two scenes are this batch and nothing else: the parts laid out flat, and the whole run assembled on a table.

Why it needs no paint

Water gets three scales of relief, all of it free because it is all in XY: a rolling swell (0.55 mm, broad and soft), wave lines across it the way a map draws water (0.9 mm wide, 0.95 mm proud), and a few sharper crests on top. Plus the 2 mm recess below the bank. Straight off the bed that reads as water; a dry-brush of white over the crests is the only optional step.

The one grey job

The ford stones (B-14) and the shore edge (B-13) want a grey or sand dry-brush to separate them from the water. They are the only parts in the batch that are not meant to be blue.

What it unlocks

Two river plates, a ford and four shore strips already build the Mill Ford layout above. Add the waterfall riser and a river can drop a level — which is when the height rule starts paying for itself.

06

The source

Everything is one parametric OpenSCAD file. Change U at the top and the entire system rescales — 1-inch grid for hex-and-chit purists, 15 mm for a travel set.

peghold.scad          // whole system, one file

  U        = 25;      // one square
  WALL_H   = 25;      // one storey
  T        = 4;       // wall thickness
  PEG_D    = 4.0;     // the connector
  SOCKET_D = 4.30;    // <- the one number you tune

// render a single part:
  part("W-07");                 // 2U wall with a doorway
  part("B-01");                 // 4x4U baseplate
  part("P-01");                 // round table

// or lay out a whole print plate:
  plate(["W-02","W-02","W-02","W-02","W-04","W-04"]);
Naming discipline. Export STLs as PEGHOLD_W-07_wall-2U-door.stl. Six months from now, when you need four more of the thing in the third sample town, the build list and the filename are the same string.