{"id":51012500,"url":"https://github.com/dmeldrum6/mesh-forge","last_synced_at":"2026-06-21T05:01:46.329Z","repository":{"id":354489025,"uuid":"1196397329","full_name":"dmeldrum6/mesh-forge","owner":"dmeldrum6","description":"A browser-based 3D object builder and OBJ exporter powered by Three.js","archived":false,"fork":false,"pushed_at":"2026-04-28T18:38:53.000Z","size":129,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-28T20:29:41.609Z","etag":null,"topics":["3d","browser-based","creative-coding","geometry","javascript","mesh","obj-exporter","single-file","threejs","wavefront-obj","webgl","zero-dependencies"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmeldrum6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T16:57:01.000Z","updated_at":"2026-04-28T18:37:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dmeldrum6/mesh-forge","commit_stats":null,"previous_names":["dmeldrum6/mesh-forge"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dmeldrum6/mesh-forge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeldrum6%2Fmesh-forge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeldrum6%2Fmesh-forge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeldrum6%2Fmesh-forge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeldrum6%2Fmesh-forge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmeldrum6","download_url":"https://codeload.github.com/dmeldrum6/mesh-forge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmeldrum6%2Fmesh-forge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34594326,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","browser-based","creative-coding","geometry","javascript","mesh","obj-exporter","single-file","threejs","wavefront-obj","webgl","zero-dependencies"],"created_at":"2026-06-21T05:01:45.610Z","updated_at":"2026-06-21T05:01:46.324Z","avatar_url":"https://github.com/dmeldrum6.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mesh-forge\n\n**A browser-based 3D object builder and OBJ exporter powered by Three.js.**\n\nBuild 3D scenes from primitives, import custom Three.js geometry, and export everything as a clean `.obj` file — no install, no build step, just open the HTML file. Examples were created using the prompt generator in the app with frontier models.\n\n![Three.js](https://img.shields.io/badge/Three.js-r128-orange?style=flat-square)\n![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)\n![No dependencies](https://img.shields.io/badge/dependencies-none-blue?style=flat-square)\n\n---\n\u003cimg width=\"1918\" height=\"907\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0447194e-3a9f-4cb6-9f10-a77191aacd00\" /\u003e\n\u003cimg width=\"1917\" height=\"909\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c45cd2bf-da80-4cf2-9545-8ede1a72509d\" /\u003e\n\n\n## Features\n\n- **Primitive shape builder** — Box, Sphere, Cylinder, Torus, Cone, and Icosahedron with live parameter controls\n- **Transform panel** — Adjust position, rotation, and scale per object\n- **Scene manager** — Add multiple objects to a scene, select and edit them independently\n- **Color picker** — Quick color swatches for material assignment\n- **Custom code import** — Paste any Three.js snippet that assigns to a `result` variable and it gets added to the scene\n- **File import** — Drag and drop a `.js` or `.html` file to extract and run Three.js geometry code\n- **AI prompt generator** — Built-in prompt templates to generate Three.js geometry code with Claude or ChatGPT\n- **OBJ export** — Hand-rolled exporter that merges all scene geometry into a single `.obj` file, preserving transforms\n- **Zero dependencies** — Single self-contained HTML file; Three.js loaded from CDN\n\n---\n\n## Getting Started\n\nNo installation required.\n\n```bash\ngit clone https://github.com/your-username/mesh-forge.git\ncd mesh-forge\nopen threejs-obj-exporter.html   # or just double-click it\n```\n\nThe tool runs entirely in your browser. No server needed.\n\n---\n\n## Usage\n\n### Building with Primitives\n\n1. Open the **Build** tab in the left sidebar\n2. Click a shape button (Box, Sphere, Cylinder, Torus, Cone, Icosahedron)\n3. Adjust the shape parameters that appear below\n4. Pick a color from the swatches\n5. Click **Add to Scene** — the object appears in the **Scene** tab\n\n### Transforming Objects\n\nSelect any object in the **Scene** tab to reveal its transform controls. You can adjust position (X/Y/Z), rotation, and scale independently for each object.\n\n### Importing Custom Three.js Code\n\nClick the **Import** button in the top bar. Your code must assign a `THREE.Group`, `THREE.Mesh`, or `THREE.BufferGeometry` to a variable called `result`:\n\n```js\nconst result = new THREE.Group();\n\nconst bodyGeo = new THREE.CylinderGeometry(0.5, 0.6, 2, 16);\nconst bodyMat = new THREE.MeshPhongMaterial({ color: 0x888888 });\nconst body = new THREE.Mesh(bodyGeo, bodyMat);\nresult.add(body);\n\nconst topGeo = new THREE.SphereGeometry(0.5, 16, 16);\nconst topMat = new THREE.MeshPhongMaterial({ color: 0xaaaaaa });\nconst top = new THREE.Mesh(topGeo, topMat);\ntop.position.y = 1.25;\nresult.add(top);\n```\n\n\u003e Code runs locally in your browser. Only the `THREE` namespace is in scope — no imports, no render loops, no scene setup.\n\n### Using the AI Prompt Generator\n\nInside the Import modal, switch to the **Prompt** tab. Enter a subject (e.g. `\"rocket ship\"`) and click **Generate Prompt** to get a ready-made prompt you can paste into Claude, ChatGPT, or any other AI assistant. The generated code can then be pasted straight back into the code import box.\n\n### Exporting to OBJ\n\nOnce you have objects in your scene, the **Export OBJ** button in the Scene panel becomes active. Click it to download `model.obj`. The exporter:\n\n- Merges all scene objects into a single geometry\n- Applies each object's position, rotation, and scale transforms\n- Outputs standard Wavefront OBJ format compatible with Blender, Maya, Cinema 4D, and most 3D tools\n\n---\n\n## Code Import Rules\n\n| Variable type | Behaviour |\n|---|---|\n| `THREE.Group` | Each child mesh becomes a separate scene object |\n| `THREE.Mesh` | Added directly as a single scene object |\n| `THREE.BufferGeometry` | Auto-wrapped in a `MeshPhongMaterial` mesh |\n\nMaterials are preserved for the live preview but normalized to `MeshPhongMaterial` for OBJ export compatibility.\n\n---\n\n## Tech Stack\n\n| | |\n|---|---|\n| **Renderer** | [Three.js r128](https://threejs.org/) via CDN |\n| **Fonts** | JetBrains Mono, Syne (Google Fonts) |\n| **Export format** | Wavefront OBJ (hand-rolled, no plugins) |\n| **Runtime** | Vanilla JS — no bundler, no framework |\n\n---\n\n## File Structure\n\n```\nmesh-forge/\n└── threejs-obj-exporter.html   # The entire application (single file)\n```\n\n---\n\n## Browser Compatibility\n\nWorks in any modern browser that supports WebGL. Tested in Chrome, Firefox, and Safari.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmeldrum6%2Fmesh-forge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmeldrum6%2Fmesh-forge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmeldrum6%2Fmesh-forge/lists"}