brew-x / README.md
junwatu's picture
Update README.md
17e1cbb verified
|
Raw History Blame Contribute Delete
2.31 kB
metadata
title: BREW-X
emoji: ☕
colorFrom: gray
colorTo: yellow
sdk: static
pinned: true
license: mit
short_description: Interactive 3D espresso machine built in Three.js

BREW-X — Interactive 3D Espresso Machine

A high-fidelity espresso machine rendered entirely from procedural geometry — no imported meshes, no external HDRs, no baked textures. Built with TypeScript (strict) + Three.js r187 + Vite, targeting WebGPU with an automatic WebGL2 fallback.

This Space hosts the production build (dist/) of the app. Source maps are intentionally excluded.

What you can do

  • Power up the machine and watch the heat-up cycle (amber blink → green ready).
  • Pull a shot — pre-infusion → extraction, with the pressure gauge tracking in real time as espresso streams from both spouts and the cup fills.
  • Portafilter — click to remove; drag to insert and twist it back into place. Brewing is refused until it is locked again.
  • Empty cup, and drive the steam wand with the valve slider.
  • Switch between Complete · Transparent · Exploded views (Cutaway is intentionally disabled).
  • Fly the camera through 11 eased presets (Hero, Front, Side, Top, Group, Basket, Wand, Gauge, Inside, Circuit, Exploded) or orbit freely.
  • Toggle labels (off by default) and internals, pick a backdrop (Studio/Light/Dark) and quality tier, and capture a PNG still.
  • Optional sound — self-hosted pour, steam and portafilter-lock clips. Sound is off by default; enable it with the toggle (browsers require a click before audio can play), and your preference is remembered.

Notes

  • Best experienced in a WebGPU-capable browser (recent Chrome/Edge). On browsers without a WebGPU adapter the app falls back to WebGL2 automatically and shows renderer: WebGL2 in the top-right badge.
  • The cup can overflow. A shot ends on its own timer, not at a fixed volume, so pulling another shot into a partly full cup spills over onto the drip tray. Use Empty cup to reset it.
  • The steam plume is intentionally restrained and reads best against the Light/Dark backdrops.
  • For source-level detail, rebuild instructions and known approximations, see the project's PROJECT_NOTES.md in the source distribution.