The best community-made forge models are published to the official three.ws account on Sketchfab, the largest public 3D model site. Each model page there links back to the creation on three.ws, so the showcase doubles as a discovery channel: someone browsing Sketchfab finds a model, follows the link, and can remix it or forge their own.
This is a curated feed, not a mirror. Only models the community has already validated get pushed, a few per week.
Selection runs three times a week (Mon/Wed/Fri) and takes up to
SKETCHFAB_UPLOADS_PER_RUN models per run (default 2), in this order:
- Weekly Forge-Off winners. The creation crowned by community vote each week on the forge board is the strongest curation signal on the platform and always goes first.
- Top-voted board models. Anything with at least one community upvote, highest votes first.
- Creator-validated models. Creations whose maker explicitly accepted the result or downloaded the GLB, newest first. This tier keeps the showcase alive while board voting ramps up. Raw unreviewed output is never pushed.
A model is skipped when its GLB exceeds the Sketchfab upload cap (45 MB guard), when it was already uploaded, or when it failed three times.
Brand safety. The official account never publishes firearms or explicit
content, regardless of what the forge itself allows. A conservative
word-boundary denylist filters the selection query and re-checks before
upload, and the platform's NemoGuard content classifier runs as a second
layer. Blocked creations are parked in the ledger (blocked) and never
re-picked. Refinement children are also excluded from the creator-validated
tier, since their prompts are instructions, not titles.
Every published model carries:
- The generation prompt at the top of the description, in quotes.
- AI disclosure: the
ai-generatedtag plus a plain statement that the model was AI-generated on the three.ws Forge. Sketchfab has no dedicated AI-content field, so tag + statement is the correct marking. - Backlinks with UTM parameters (
utm_source=sketchfab,utm_medium=referral,utm_campaign=showcase): one to the creation's share page (/forge/share/<id>), one to /forge. The UTM tags make Sketchfab referrals measurable in analytics, which decides whether the cadence goes up or down. - Tags:
ai-generated,generative-ai,text-to-3d,threews, plus the model's category.
Models are published viewable and inspectable but not downloadable: creations belong to their creators, and the showcase does not relicense them.
GET /api/cron/sketchfab-showcase (Cloud Scheduler, Bearer $CRON_SECRET):
- Refreshes the async processing status of recent uploads
(
uploadedbecomeslivewhen Sketchfab finishes processing). - Selects candidates and claims each in the
sketchfab_uploadsledger before any network call, so a retried or concurrent run can never double-upload. - Downloads the stored GLB and posts it to the
Sketchfab Data API v3
(
POST /v3/models, multipart).
?dry_run=1 returns the current selection without uploading anything.
| Env var | Meaning |
|---|---|
SKETCHFAB_API_TOKEN |
Data API token of the official account (Sketchfab settings, Password & API). Unset: the cron is dormant and skips cleanly. |
SKETCHFAB_UPLOADS_PER_RUN |
Models per run, default 2, clamped 1-5. At the Mon/Wed/Fri schedule the default publishes up to 6 models a week. |
State lives in the sketchfab_uploads table (one row per creation:
pending, uploaded, live, failed with the error recorded, or blocked
when the brand-safety gate parked it). Code:
api/cron/sketchfab-showcase.js
and api/_lib/sketchfab.js.