Messing Around
  • TypeScript 92.3%
  • Python 4.8%
  • HTML 1.8%
  • Shell 0.6%
  • Batchfile 0.5%
Find a file
2026-07-23 19:35:00 -06:00
docs docs: T-003 released — 'push cascade feature>develop>main' (pre-flight + cascade recorded) 2026-07-23 19:34:50 -06:00
recon3d fix(recon3d): restore TripoSR's [2,1,0] axis reorder in the skimage patch (orientation) 2026-07-23 18:52:54 -06:00
src fix(back): silhouette-WRAP colour (never the front mirrored) + kill the returning paint drips (T-032) 2026-07-23 19:29:44 -06:00
.gitignore init: Deviant3D — TypeScript scaffold (vite + strict tsconfig), workflow docs, fresh history 2026-07-22 23:19:51 -06:00
index.html feat(recognition): class-aware equational backs — the AI KNOWS what each subject is (T-024) 2026-07-23 03:27:21 -06:00
package-lock.json feat(depth)!: real AI depth model is THE path + GUT ALL FALLBACKS (LAW, T-020/T-021) 2026-07-23 02:33:56 -06:00
package.json feat(recon3d): pivot to in-browser (user GPU) via one-time ONNX conversion + JS marching cubes (T-028/T-029) 2026-07-23 18:21:06 -06:00
README.md feat(recon3d): AI-generate the real unseen back via open-source image-to-3D (TripoSR) (T-028) 2026-07-23 18:03:57 -06:00
RESUME.md docs: rewrite RESUME.md — the back saga, live-tested laws, per-part wrap-colour architecture (T-033) 2026-07-23 19:33:11 -06:00
tsconfig.json init: Deviant3D — TypeScript scaffold (vite + strict tsconfig), workflow docs, fresh history 2026-07-22 23:19:51 -06:00
vite.config.ts init: Deviant3D — TypeScript scaffold (vite + strict tsconfig), workflow docs, fresh history 2026-07-22 23:19:51 -06:00

Deviant3D — 3D worlds from pictures

Drop any image (or a video) and Deviant3D turns it into a real 3D world you fly through — mouse-look + WASD, circle behind the subject, walk in on scenery, see the fruit from all sides. No shortcuts: every stage is real equations, real geometry, and honest labeling of what's observed versus what's synthesized.

TypeScript throughout. Runs in the browser (WebGPU for the renderer).

The pipeline

image ─▶ equationalize (field C, CDF 9/7 wavelet)          the substrate
      ─▶ recon3d BACKEND (open-source TripoSR, MIT, local)  AI GENERATES the full 3D object — real
                                                            hallucinated BACK geometry + texture
      ─▶ drop the subject into the PROPAGATED 360 ENVIRONMENT (ground → locked horizon + wrap backdrop
         from the image's own vertical structure, varied by its mode-E field) — the scene surrounds you
      ─▶ analyze → light it by its own luminance + seed mode-E close-up detail
      ─▶ FLY IT (WebGPU): free-fly / wander / orbit, subject is a real solid you can circle

A front photo has no back data, so the unseen back is AI-GENERATED by an open-source, free single-image→3D model (TripoSR, MIT) in a local recon3d backend — never the front smeared onto the back. NO FALLBACKS (LAW): backend down → the app says so loudly, never a fake. Depth + recognition measurement models + the equational 360 environment + mode-E surface detail still run; the backend just owns the real generated back.

Quickstart

# 1) the recon3d backend (generates the real back) — once, then leave running:
bash recon3d/setup.sh     # venv + clone TripoSR (MIT) + deps   (Windows: recon3d\setup.bat)
bash recon3d/run.sh       # http://127.0.0.1:8008               (Windows: recon3d\run.bat)

# 2) the app:
npm install
npm run dev          # dev server — drop an image or video
npm run typecheck    # strict tsc, must stay clean
npm run build        # production build (vite)

Then in the page (backend up): drop an image, click the black canvas to grab the mouse, WASD to move, Space/Shift to rise/fall, 1 / 2 / 3 to switch Free-fly / Wander / Orbit. First reconstruct downloads the TripoSR weights. See recon3d/README.md.

What it does

  • Equational core — a bit-faithful port of the reference engine's CDF 9/7 wavelet field C (verified against its recorded golden reference: 1434 terms, 43.19 dB).
  • Real depth (AI) — a monocular depth model (Depth-Anything class) runs in the browser on WebGPU and gives real per-pixel depth. A model selector auto-downloads + sets up the model you choose (runs locally, no server). The 3D is relieved from that measured depth — depth discontinuities cut object edges so things separate cleanly.
  • AI-generated real back (recon3d) — a local, open-source TripoSR (MIT) backend turns ONE photo into a full 3D object with a real hallucinated back — geometry AND texture — because a front photo simply has no back data to measure. The generated subject is dropped into the 360 environment. The backend must be running (recon3d/setup.shrecon3d/run.sh); if it's down the app fails loudly, no fake. (A secondary in-browser measured-depth + dynamic-smooth-equational-back path also exists and drives video Animate.)
  • Free-fly renderer — WebGPU, lit by the image's own measured luminance, with mode-E infinite close-up detail that never bottom-outs as you zoom in.
  • Save/load — a whole world is one CRC-checked .dv3 file that carries the original byte-exact.
  • Video + sound — drop a video to build a world from its frames (and ▶ Animate to play them as evolving scenes); ♪ Music plays the image's own maths as an equational soundtrack; ● Record saves a WebM fly-through with sound.

Docs

All four are also viewable inside the app — click 📖 Docs.

Honesty

Observed vs invented is always distinguishable. The front is MEASURED (depth model); the back is a same-character EQUATIONAL continuation of the image's own field, not a ground-truth photo of the reverse. The Backs toggle hides the synthesized reverse so you can see exactly what the camera really saw. Recognition and depth are measurement models — they measure, they never generate; the generation is always the image's own equation continued.