atproto Thingiverse but good
Rust 75%
JavaScript 22%
TypeScript 2%
CSS <1%
<1%
Nix <1%
Shell <1%
Just <1%

README.md

Polymodel #

Polymodel is an AT Protocol-native model/project sharing app: roughly “Thingiverse on atproto.”

The initial concept is intentionally small:

  • a lexicon for printable/model projects;
  • a profile-oriented publishing surface;
  • likes/saves and basic social feedback;
  • feeds for recent projects, hot projects, and per-profile project streams;
  • an in-browser STL viewer.

It is also a workplace demo for a highly integrated agent workflow built around Polytoken, Jira, Confluence, jj workspaces, and strong review gates.

Jira project/Confluence space key: PM.

STL viewer #

Decision: three-d.

  • three-d: chosen STL viewer. Renders on a Dioxus-owned canvas via WebGL2; the renderer session is retained across model switches and STL assets load on demand from public/models/.
  • kiss3d: rejected — no WebGL2/WebGPU adapter surfaced at runtime in the browser target (PM-21).

The viewer choice should be decided with a small spike that loads an STL, renders orbit controls, and fits cleanly into Dioxus.

Development #

Use Nix/direnv when available:

nix develop

Common commands:

just fix       # format and apply safe clippy fixes
just check     # native, server, and wasm checks
just test      # unit tests via nextest
just test-all  # pre-review local validation
just serve     # Dioxus dev server

Workflow #

  • Jira is both the human source of truth and the agent working truth for implementation tasks.
  • Confluence is the durable design/demo narrative space.
  • jj workspaces are the default isolation mechanism for agent work.
  • Polytoken skills and project vars live under .polytoken/.

Stack #

  • Rust 2024 / nightly
  • Dioxus 0.7
  • Jacquard 0.12
  • Nix flake dev shell
  • just command runner