Skip to content

Repository files navigation

Faraday

A browser-based, self-hosted parametric enclosure generator for electronics projects. Set overall box dimensions, pick a lid system, and export print-ready STLs — no accounts, no backend, no server-side rendering. All CSG geometry runs client-side via manifold-3d (WASM) in a Web Worker.

This build currently covers:

  • Live-editable box body (length/width/height, wall thickness, sharp/rounded/chamfered corners)
  • Two-piece lid system: friction-lip and screw-boss (with heat-set or self-tap hole options)
  • Connector/feature library: click a connector or standoff in the palette, then click a face to place a cutout or PCB-mounting standoff
  • Direct manipulation: drag handles to resize the body, hover-highlighted faces, click-to-select a placed feature (with an editable rotation and, for standoffs, dimensions), drag-to-reposition with snapping to edges/center/other features
  • Board presets (RTL-SDR dongle, Heltec V3, T-Beam, Pi Zero) as a starting point, save/load projects as JSON, localStorage autosave, mm/in units toggle, undo/redo
  • Real-time 3D preview (Three.js) with debounced regeneration in a Web Worker
  • Zipped STL export (case_base.stl + case_lid.stl) at full tessellation quality

Not yet implemented: vents, snap-fit lids, cylindrical bodies.

See DESIGN.md for the full design doc and PROGRESS.md for what's done, what's next, and notes for picking this work back up in a new session.

Project layout

The app lives entirely under frontend/ (a static Vite/React SPA — see the design doc for why there's no backend). docker-compose.yml at the repo root builds and serves it.

Development

cd frontend
npm install
npm run dev

Build

cd frontend
npm run build

Docker

Self-hosting (pulls the published image):

docker compose up

Pulls ghcr.io/d3mocide/faraday (built for linux/amd64 and linux/arm64) and serves it on http://localhost:8090. Faraday is currently in beta — docker-compose.yml tracks the beta tag; pin an exact version (e.g. ghcr.io/d3mocide/faraday:0.1.0-beta.1) for a reproducible deploy. See CHANGELOG.md for what's in each release.

Local development (builds ./frontend from source):

docker compose -f docker-compose.dev.yml up --build

About

Parametric Radio and IoT Device Case Generator

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages