A 3D-printed desk monkey that listens to the room and reacts when the office gets too loud — so no one has to be the person who shushes everyone.
Danish name: Tys aben ("Hush the monkey")
🌐 Website · 🎨 Lovable project · 📄 Product plan
Built by a team of five at The Boring Hackathon 2026 — a Copenhagen hackathon organised by Milo.AI and Iværksætter Netværk Denmark.
OfficeMonkey is a small, 3D-printed monkey that sits on a desk or shelf in an open office. Inside is an ESP32 with a digital microphone that continuously measures ambient sound level. When the noise crosses a threshold (sustained chatter, a loud meeting bleeding into the open floor), the monkey reacts — gently signalling "it's a bit loud in here" without anyone having to say it out loud.
- An I2S MEMS microphone (INMP441 or SPH0645) samples ambient audio.
- The ESP32 computes a short-window RMS → smoothed dB-ish value.
- If the level stays above a configurable threshold for a configurable duration, the monkey triggers a reaction (LEDs, sound, or servo movement — see Roadmap).
- A cooldown period prevents re-triggering on every noise spike.
Threshold, dwell time, and cooldown are hard-coded in V1 and configurable via a small WiFi-served page in V1.1.
The Boring Hackathon 2026 gave us a fixed sprint to go from idea to something tangible. In that window we:
- Scoped the product, hardware, and V1 roadmap.
- Designed a parametric enclosure in OpenSCAD and 3D-printed a working miniature prototype.
- Built officemonkey.dk as the product site, using Lovable for rapid iteration.
- Delivered a live demo and pitch at the end of the day.
- Posted a launch listing to the Iværksætter Netværk Denmark community as a first go-to-market signal.
.
├── 3d Model officemonkey.dk/ Marketing 3D model for the website
├── Tys-aben-Print-Package/ Ready-to-print bundle of the enclosure
├── cad/ OpenSCAD source for the enclosure
├── prints/ Reference/finished print files
├── stl/ Exported STL files for printing
├── Mokey-product-plan.md V1 product plan and scope
├── PRINT.md Printing instructions
├── Research.md Background research
├── design-v1.md V1 design notes
├── design-critique.md Design critique notes
└── three-wise-monkeys-website-inspiration.md
Note:
Mokey-product-plan.mdhas a typo in the filename (should beMonkey-). Worth fixing on a rename PR.
Target BOM: under $25 per unit.
| Part | Notes | Approx cost |
|---|---|---|
| ESP32 dev board (ESP32-S3 recommended) | Built-in WiFi/BT, I2S mic support, USB-C | ~$5–10 |
| I2S MEMS microphone (INMP441 or SPH0645) | Digital mic, cleaner than analog for noise-level work | ~$3 |
| Reaction output (LEDs / speaker / micro-servo) | TBD — see Roadmap | $2–10 |
| 3D-printed enclosure | PLA, printed from files in stl/ |
Filament only |
| USB-C cable + 5V supply | ~$5 |
- Firmware: Arduino-ESP32 (C++) or ESP-IDF. MicroPython avoided for V1 — audio sampling timing is easier in C.
- Audio sampling: I2S DMA → RMS → smoothed dB estimate.
- Trigger logic: threshold + dwell + cooldown.
- CAD: OpenSCAD (parametric, so the enclosure can be re-generated when hardware choices change).
- Tooling: Python scripts for print helpers / calibration.
- Marketing site: Lovable (React + Vite), deployed at officemonkey.dk.
Firmware and wiring are still in progress — this section will grow past the hackathon miniature as V1 comes together.
- Grab an STL from
stl/(or open the OpenSCAD source incad/if you want to tweak dimensions). - Slice with your printer's usual PLA profile. See PRINT.md for orientation and support notes.
- Print the back panel separately so the electronics stay accessible.
Coming soon — firmware code will live in a firmware/ folder once V1 is written. See Mokey-product-plan.md §4 for the intended stack.
V1 uses hard-coded threshold/dwell/cooldown constants at the top of the firmware. V1.1 will add a WiFi config page.
V1 (in progress)
- Breadboard prototype: ESP32 + I2S mic, dB values over serial
- Trigger logic (threshold + dwell + cooldown)
- Pick reaction hardware (LED-only recommended for V1)
- Fit electronics into enclosure, iterate on print
V1.1
- WiFi config page for threshold / sensitivity
- Sound and/or servo reaction on top of LEDs
V2 (ideas)
- Voice commands ("monkey, calibrate") on ESP32-S3
- Multi-monkey coordination across a floor
- Battery / portable operation
Explicit non-goals for V1: battery, cloud dashboard, mobile app, on-device speech recognition.
Built by a team of five at The Boring Hackathon 2026:
- Agent360 — hardware, product, 3D design
- Christopher Wang
- …add remaining three teammates here
TBD — recommend MIT for the code and Creative Commons Attribution (CC BY 4.0) for the 3D models. Open an issue if you disagree before we commit to it.
| 🌐 Website | www.officemonkey.dk |
| 🎨 Lovable | Open in Lovable |
| 📄 Product plan | Mokey-product-plan.md |
| 🎨 Design notes | design-v1.md · design-critique.md |
| 🔬 Research | Research.md |
| 🖨️ Print instructions | PRINT.md |