3D objects for the web,
with code included.
Generate or upload decorative 3D assets. Obj3cts validates them, generates Three.js and React Three Fiber code, and packages everything as a downloadable bundle.
FORMAT
GLB 2.0
OUTPUTS
Three.js · R3F
VALIDATOR
Khronos
00 / How it works
Upload to web-ready, in seconds.
The pipeline is deterministic. Templates over freeform code. Validation, optimization, and code generation all happen before you see the bundle.
- 01
Generate or upload
Drop a .glb file, or describe the object you want. Obj3cts orchestrates the pipeline.
- 02
Auto-validate
Khronos glTF Validator. Triangle counts. Texture sizes. Materials. Web-ready checks.
- 03
Download bundle
Optimized GLB, Three.js scene, R3F component, README, license. All zipped.
01 / Generated code
Same model. Same code.
Three.js scene, R3F component, and static HTML. All template-based — no AI guessing at imports or invoking hallucinated APIs.
- Vanilla Three.js scene
- gltfjsx-generated R3F
- Static HTML index
- Source-code attribution
// 3D asset from Obj3cts.com — Floating Crystal Cluster
// Attribution required by the selected asset license.
// https://obj3cts.com
import { Canvas, useFrame } from '@react-three/fiber';
import { OrbitControls, useGLTF, Environment } from '@react-three/drei';
import { Suspense, useRef } from 'react';
import * as THREE from 'three';
function Model() {
const { scene } = useGLTF('/models/model.glb');
const ref = useRef<THREE.Group>(null);
useFrame((_, delta) => {
if (ref.current) ref.current.rotation.y += delta * 0.2;
});
return <primitive ref={ref} object={scene} />;
}
useGLTF.preload('/models/model.glb');
export function Scene() {
return (
<Canvas shadows camera={{ fov: 35, position: [2.4, 1.6, 2.4] }}>
<color attach="background" args={['#0a0a09']} />
<Suspense fallback={null}>
<Environment preset="city" />
<Model />
<ambientLight intensity={0.4} />
<directionalLight position={[3, 5, 2]} intensity={1.2} castShadow />
</Suspense>
<OrbitControls enableDamping dampingFactor={0.08} />
</Canvas>
);
}02 / Featured
Recently published.
03 / What's in the bundle
One zip.
Everything you need.
Optimized model, decimated preview, Three.js scene, R3F component, static HTML, README, license, attribution, and the full quality report.
obj3cts-floating-crystal-cluster/ ├─ README.md4.2 KB ├─ LICENSE.md1.8 KB ├─ ATTRIBUTION.md0.4 KB ├─ model/ │ ├─ model.glb1.24 MB │ ├─ preview.glb0.18 MB │ └─ thumbnail.png14 KB ├─ three/ │ ├─ scene.js2.1 KB │ ├─ index.html0.9 KB │ └─ package-snippet.json0.2 KB ├─ r3f/ │ ├─ Model.tsx1.8 KB │ ├─ Scene.tsx1.4 KB │ └─ package-snippet.json0.2 KB └─ meta/ ├─ objspec.json1.6 KB ├─ quality-check.json2.4 KB ├─ validation-report.json0.9 KB └─ optimization-report.json1.1 KB
04 / Quality
Web-Ready means
something specific.
Every published asset goes through automated validation. Only listings that pass all checks earn the Web-Ready badge. Everything else publishes with visible warnings or stays in drafts.
Community can flag any listing. Serious flags escalate to review.
- Loads in browser
- glTF Validator passes
- Under 10 MB filesize
- Under 50K triangles
- Textures ≤ 2048px
- No missing textures
- Three.js code generated
- R3F component generated
- Reasonable scale + origin
- License + attribution included
05 / Marketplace
Publish free. Sell paid. Keep 80%.
Creators choose free or paid at publish time. Stripe Connect handles payouts. 80% to you, 20% covers validation, packaging, hosting, and payment infrastructure.
06 / FAQ
Common questions.
The marketplace mechanics, the licensing rules, what's in the MVP, what's deferred.
Read full reference- No. The model can be AI-generated (via Meshy or another provider). The code is template-based: deterministic Three.js scene, gltfjsx-driven R3F component, static HTML index. Same model → same code, every time.
- GLB only in the MVP. Other formats (.gltf, .obj, .fbx, .stl, .blend) arrive later. GLB-first because glTF 2.0 is the open standard for web-ready 3D and most tooling already exports it.
- Yes. Every asset you generate or upload can be listed as Free or Paid (creators keep 80%). AI-generated assets are visibly labeled. Quality is auto-checked and the community can flag issues.
- Yes — but only in the source code, not visibly on your site. Every generated file ships with a small comment referencing Obj3cts. That's the attribution requirement.
- Not by default. Remix is off by default; buyers can use, modify, and animate your asset inside their websites, but they cannot republish it as a derivative model or sell it elsewhere.
- Not yet. Obj3cts is focused on decorative 3D assets for websites. 3D-printable assets are a separate category, planned for later — different validation (watertight geometry, real-world scale, printability claims).
→ Is the code AI-generated?+
→ What formats are supported?+
→ Can I sell what I generate?+
→ Do I have to credit Obj3cts?+
→ Can someone remix my asset?+
→ Is this for 3D printing?+
Ready to ship 3D?
Open the gallery or generate your first object now.