Materializr
오픈소스 파라메트릭 3D CAD로 제약 스케치·솔리드 모델·나사·SVG·텍스트 조각·STL/STEP 내보내기를 지원합니다
대상을 선택해 스타일·색상을 입히면 3D 프린팅을 염두에 둔 디자인 컨셉을 렌더링한다. 마음에 드는 것은 STL 파일로 저장한다
Pick an object, add a style and colours, and render a design concept made with 3D printing in mind. Keep the ones you like and turn them into an STL.
디자인HTML · JavaScriptGitHub @jrb23455온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Design generator for 3D printing. Pick an object (123 across home goods, figurines, spiritual, jewelry and geometry), layer on a style, and render it in the cloud with Flux. Turn a render into a printable STL with Tripo. Live at podder.dev.
The app is a single static page plus a handful of serverless functions. No build step, no npm dependencies.
index.html the whole app (UI + prompt engine)
brochure.html the public design book (/brochure), data in brochure/
terms.html /terms privacy.html /privacy
api/generate.js renders (Replicate Flux), debit first, refund on failure
api/model3d.js image -> STL (Tripo); tasks tied to the account that paid
api/checkout.js Stripe checkout api/claim.js + api/stripe-webhook.js fulfil purchases
api/me.js balance + ledger; also settles failed 3D jobs
api/config.js public client config (Supabase URL + anon key, prices)
api/account.js DELETE: user deletes their own account
api/auth.js owner PIN check (per-IP lockout after 10 wrong tries an hour)
api/admin/grant.js owner: grant or remove credits by email
api/brochure.js owner edits to the design book
supabase/migrations schema; apply in order
scripts/preflight.mjs runs as Vercel's build step and blocks a broken catalog
| Variable | What |
|---|---|
SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY | accounts and credits |
STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET | payments |
REPLICATE_API_TOKEN | renders (without it, renders are free labeled mocks) |
TRIPO_API_KEY | 3D models (the button only appears when set) |
RENDER_REVIEW_KEY | Anthropic API key for "Report bad render" (the button stays hidden without it) |
ALERT_WEBHOOK_URL | optional Discord/Slack webhook for error alerts |
PODDER_PIN | owner access: unlimited, unbilled. Use a long random value. |
PUBLIC_ORIGIN | optional, e.g. https://www.podder.dev, for Stripe return URLs |
Prices, packs and the signup bonus live in api/_lib/config.js; the bonus amounts themselves are granted by the database triggers (see the migrations).
node dev-server.mjs
Opens http://localhost:8299. Renders are mocks unless REPLICATE_API_TOKEN is set.
Rendered images, favorites and history live in the browser (IndexedDB + localStorage), not on the server. Saved STLs are remembered by Tripo task id and re-fetched on demand, since Tripo's file links expire.