Live demo

NeatFreak

Photo in, 3D-printable drawer organizer out. Pick a photo, drag the sliders until the outline hugs the object, set the real-world size, and download a printable tray — plain or with a Gridfinity-compatible base.

Source · detected silhouette

Generated tray pocket

Runs entirely in your browser — photos never leave your device. Gridfinity footprint snaps to 42 mm units (simplified feet).

The desktop version (Python · OpenCV · CadQuery) estimates the background color from the photo's corners, thresholds the color distance to isolate the object, cleans the mask with morphological passes, traces the largest contour, and extrudes it into a parametric CadQuery tray exported as STL.

This page reimplements the pipeline in vanilla JavaScript: canvas pixel ops for extraction, then a watertight heightfield mesh — tray, pocket, and optional Gridfinity feet — written as binary STL or OBJ on the fly.