print-bench

N.U.G.G.S. Feeder Hopper

The NUGGS ecosystem's feeding module: a shallow gravity hopper that mates the standard quarter-turn port and holds a few days of food, dropping it into the enclosure as it is eaten. Owner refills from outside the cage through the open top port. The catalog had den, elbow, bridge, orrery and shutter-valve — all tube or refuge; feeding was the gap (scout mandate: deepen the NUGGS ecosystem).

Overview

Three-quarter view of the hopper — port on the bed, bulb mid-body, fill port up

Hero Detail 1 / 4

Three-quarter view of the hopper — port on the bed, bulb mid-body, fill port up

The gravity-fed top-fill food module for the N.U.G.G.S. hamster-tunnel system: a bulbous hopper that clicks onto any NUGGS face, holds a few days of pellets behind an 8 mm mesh floor, and lets them drop into the enclosure as they are eaten. The owner refills it from outside the cage, straight down through the open top port — no dismantling, no reaching in. Same genderless quarter-turn coupling every NUGGS module shares, so it threads onto a run, an elbow, or a cage-wall stub either way round.

Work in progress — nothing in this system has been printed yet. The hopper passes gate.sh --slice and is watertight in geometry, but port_tol = 0.30 is an untested guess inherited from the shared standard. Print the coupon first (see Assembly & use) and expect to tune it.

What you get

One printed part: the hopper, with a NUGGS port at each end and the mesh floor built in — no separate steel mesh, no parts to lose.

  • hopper — the module (≈ 108 × 108 × 140 mm at defaults, printed standing on its bottom coupling sectors). Bore 80 mm top and bottom, bulb 102 mm clear inside, 37-cell mesh floor at the bulb's base.
  • coupon — the print-this-first port stub (≈ 95 × 95 × 31 mm) you tune the quarter-turn fit on before committing to the full print.

How it feeds

  • Gravity is the only mechanism. Pellets sit on the mesh floor; the ones over an open cell fall through into the enclosure below. As they are eaten, the next ones settle. No metering, no anti-hoarding auger — deliberately: the brief scoped those out, and a mechanism that can jam is worse than a mesh that can't.
  • The 8 mm cell is the barrier. Small enough to stop a head or a stuffed cheek pouch, wide enough to pass a standard pellet. It is a welfare-capped parameter: mesh_open may be tuned for your pellet size but never past 12 mm.
  • Refill from outside. The top port is the fill mouth. Pour pellets in through it; the flared mouth funnels them home. Twist the hopper off for a full wash instead.
  • Material: PLA or PETG. PETG edges out PLA for anything food-adjacent (less brittle, survives washing); either prints the part as modelled.
  • Layer height: 0.2 mm.
  • Infill: 15–20 %; the shell and mesh ribs do the work.
  • Supports: none needed. The bulb's shoulders sit at ~40° from vertical, the mesh floor's cells are 8 mm across (the slicer bridges them on layer 1), and the coupling sectors print on their tips by design.
  • Orientation: as modelled — bottom port's sectors down on the bed, bore straight up, fill port printed last. Do not rotate it; the coupling is meant to print standing on its lug tips.
  • Brim: yes. The part stands on three small sector tips (~530 mm² contact) and is tall — the same first layer every NUGGS module prints on.
  • Heads up: it is a substantial part — ~153 g and ~12 h at defaults. Shrink bulb_r or body_len if you want it smaller.

Parameters

The handful most worth tuning; the rest are grouped in the Customizer sections at the top of nuggs-hopper.scad.

ParameterDefaultWhat it does
bore_d80 mmInternal bore — the shared NUGGS headline number. Floored at 70 mm by the coupling library (Syrian entrance minimum).
port_tol0.30 mmThe one fit knob for the quarter-turn joint. Tune on the coupon in ±0.05 steps.
mesh_open8 mmMesh cell width — the pellet-passes / head-stops barrier. Tunable for your pellet, never past 12 mm (welfare bound).
mesh_rib_w2.4 mmRib width between cells. Keep ≥ 1.2 mm (gnaw floor).
body_len120 mmPort-face-to-port-face span. More = more capacity, taller print.
bulb_r54 mmHalf the bulb OD (108 mm at defaults). Bigger = more capacity.
eq_h40 mmHeight of the bulb's straight equator band — the pellet column sits here.
shoulder1.2Bulb taper rate; 1.2 ≈ 40° from vertical, self-supporting. Do not go below 1.0 (45° ceiling).

Override on the command line, e.g. -D 'mesh_open=9' or -D 'bulb_r=50'.

Assembly & use

  1. Print the coupon first. nuggs-hopper-coupon.scad is a bore-clean port stub. Mate two of them (or one to any NUGGS module) and step port_tol in ±0.05 until the quarter-turn seats snugly without forcing. Set that value in nuggs-hopper.scad before printing the hopper.
  2. Print the hopper with a brim, no supports, bottom-port down.
  3. Fit it onto any NUGGS face pointing up or sideways: push together, twist a quarter turn either way. For a cage-wall mount, pair it with a cage-wall stub so the hopper stands outside, ports vertical.
  4. Fill it through the top port: a handful of pellets, and gravity does the rest. Wash by twisting off and rinsing — the mesh floor is monolithic, so there is nothing to disassemble and lose.

Workbench

View in 3D

Inspect the real geometry — drag to rotate, scroll to zoom. The model is rendered from this design's own source at its default settings, right in your browser; nothing is uploaded.

Make it fit

This design has 30 tunable parameters. Change them and render your own STL — OpenSCAD runs in your browser, so nothing is uploaded and nothing is installed.

An STL you configure here is ungated. The files this project ships have each passed a printability check and a PrusaSlicer test-slice; your variant has not. Treat it as a starting point, and print the fit coupon first if the design has one.

History

History of work together

  1. 2026-08-29 commit · git

    render.sh: emit the --render form the installed OpenSCAD build accepts (fixes the render camera opt) (#408)

    Shai Perednik shai
  2. 2026-08-29 commit · git

    Fix teardrop_hole() point orientation to +Z as documented; pin it with a mates manifest (#424)

    Shai Perednik shai
  3. 2026-08-24 commit · git

    Add the missing product-manager characters to the People page (#381)

    Shai Perednik shai
  4. 2026-08-17 decision · PM.md

    Two ports inline (brief's part breakdown) over dome-end (its dimension row)

    Top-fill "through the open port" requires a top port; recorded in NOTES.md for the PR reader

    Nadia nadia
  5. 2026-08-17 decision · PM.md

    Mesh floor is a flat disc, not a gabled profile

    A gable would clear the overhang warning but doubles slab thickness and closes the opening upward — against food flow (H4's spirit)

    Nadia nadia
  6. 2026-08-17 decision · PM.md

    8 mm is the opening, not the pitch

    Carried from the prior run's hand-off; rib 2.4 mm derives pitch 10.4 mm

    Nadia nadia
  7. 2026-08-17 decision · PM.md

    Coupon ships even though elbow ships none

    port_tol is flagged unproven (issue #56) and the contract froze G2 on it

    Nadia nadia
  8. 2026-08-17 decision · PM.md

    One-revolve body (nuggs-den construction)

    The prior run's sphere∪cylinder shipped three disconnected volumes; a single revolve profile cannot come apart

    Nadia nadia
  9. 2026-08-17 commit · git

    CI: regenerate previews and product pages

  10. 2026-08-17 commit · git

    Add design: nuggs-hopper