[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82050":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":29,"discoverSource":30},82050,"Engine","Stem-Studio\u002FEngine","Stem-Studio","Stem Studio, the web game engine","http:\u002F\u002Fbuildwithstem.com\u002F",null,"TypeScript",185,26,2,11,0,3,73,1,53.09,"MIT License",false,"main",true,[],"2026-06-12 04:01:36","# StemStudio\n\n> A browser-based 3D sandbox editor and runtime. Build, script, and play 3D games in your browser. Open source under MIT.\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](.\u002FLICENSE)\n[![Three.js](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fthree.js-r168+-black.svg)](https:\u002F\u002Fthreejs.org)\n[![Built with Bun](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbuilt%20with-bun-orange.svg)](https:\u002F\u002Fbun.sh)\n\nStemStudio gives you a complete authoring environment — scene editor, behavior scripting in JavaScript, physics, multiplayer, an AI copilot — that runs entirely on your machine. Projects live in your browser (IndexedDB) or in a folder you pick (File System Access API). No accounts, no cloud, no lock-in.\n\n## Sponsor this project\n\nIf StemStudio is useful to you or your organization, please consider sponsoring its continued development. Sponsorships fund maintenance, new features, documentation, and community support.\n\n[![Sponsor](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponsor-%E2%9D%A4-ff69b4.svg)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FStem-Studio)\n\n---\n\n## Features\n\n- **3D scene editor** built on Three.js — primitives, materials, transforms, scene tree, viewport, gizmos.\n- **Behaviors** — JavaScript classes attached to scene objects with a lifecycle (`init`, `update`, `onCollision`, etc.) and a built-in pack covering input, character controllers, vehicles, AI NPCs, UI, audio, and more.\n- **Lambdas** — an entity-component system on top of behaviors when you need archetype-driven, batched work.\n- **In-editor code editor** — Monaco for behavior and script authoring with full TypeScript-style assist.\n- **Physics** — Ammo.js \u002F Rapier integration with rigid bodies, joints, raycasting.\n- **Local multiplayer** — Colyseus sidecar auto-spawned on `bun run dev`. Two browser tabs on the same machine join a real room.\n- **AI copilot (BYOK)** — bring your own keys for Anthropic, OpenAI, Meshy (3D model gen), ElevenLabs (TTS), and AnythingWorld. Configure once, use everywhere.\n- **Local-first persistence** — IndexedDB for seamless auto-save, or open a real folder via File System Access API (Chromium) for git-friendly workflows.\n- **Export & share** — package any project as a standalone static site (Player-only build) you can host anywhere.\n\n## Quick start\n\nPrerequisites: [Bun](https:\u002F\u002Fbun.sh) 1.0+, [Go](https:\u002F\u002Fgo.dev) 1.21+, [Node.js](https:\u002F\u002Fnodejs.org) 20+.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fstemstudio.git\ncd stemstudio\ngit submodule update --init --recursive\nbun install\nbun run dev\n```\n\nThat single command starts three processes:\n\n- **Vite** on `http:\u002F\u002Flocalhost:5173` — the editor.\n- **AI server** on `http:\u002F\u002Flocalhost:8081` — proxies AI calls to providers using your keys.\n- **Multiplayer sidecar** on `ws:\u002F\u002Flocalhost:2567` — Colyseus rooms for local multiplayer.\n\nOpen `http:\u002F\u002Flocalhost:5173` and follow the first-time bootstrap modal to pick your project storage mode (IndexedDB or local folder).\n\nTo use AI features, add a `.env` file (copy from `.env.example`) with whichever provider keys you want:\n\n```bash\nANTHROPIC_API_KEY=sk-ant-...\nOPENAI_API_KEY=sk-...\nMESHY_API_KEY=...\nELEVENLABS_API_KEY=...\nANYTHING_WORLD_API_KEY=...\n```\n\nAny key you omit makes that provider unavailable — the editor will prompt you for it when you first try a feature that needs it.\n\n## What's in the box\n\n- Editor, player, runtime, behaviors, lambdas, physics, rendering, scheduler, asset loading.\n- Monaco-based script\u002Fbehavior editor.\n- Local multiplayer Colyseus sidecar.\n- AI proxy server (Go) that forwards calls to your provider keys.\n- BYOK key management — keys stay in your browser's IndexedDB and are only sent to the provider you configured.\n- Build tooling (Vite, TypeScript, ESLint, Bun test).\n- Engine docs alongside the code: behaviors, lambdas\u002FECS, physics, UI, art specs.\n\n## Documentation\n\n- [Architecture overview](.\u002Fdocs\u002Farchitecture.md) — how the editor, AI server, and multiplayer sidecar fit together.\n- [BYOK setup](.\u002Fdocs\u002Fbyok.md) — connect your AI provider keys.\n- [Multiplayer guide](.\u002Fdocs\u002Fmultiplayer.md) — local sidecar and self-hosted deployment.\n- [Exporting a game](.\u002Fdocs\u002Fexporting-a-game.md) — package a Player-only static site.\n- [Contributing](.\u002FCONTRIBUTING.md) — development workflow and PR guidelines.\n\nDeeper engine docs (behaviors lifecycle, lambdas\u002FECS, physics, scheduler, rendering) live under `docs\u002F` in this repo.\n\n## Development workflow\n\nThis project uses Bun as its package manager and task runner.\n\n```bash\nbun run dev            # All-in-one: Vite + AI server + MP sidecar\nbun run dev:editor     # Editor only (Vite)\nbun run dev:ai         # AI server only\nbun run dev:mp         # MP sidecar only\n\nbun run build          # Production static build\nbun run typecheck      # TypeScript verification\nbun run test           # Unit + integration tests\nbun run lint           # ESLint\n```\n\nTo export a single project as a Player-only static site, use the in-editor **File → Export game** action and follow the instructions in [docs\u002Fexporting-a-game.md](.\u002Fdocs\u002Fexporting-a-game.md).\n\n## Browser support\n\n- **Chromium-based** (Chrome, Edge, Brave, Arc): full feature set including File System Access API for folder-based project storage.\n- **Firefox**: full feature set with IndexedDB storage only (no folder access).\n- **Safari**: full feature set with IndexedDB storage only (no folder access).\n\nWebGPU support is required. We do not support WebGL\n\n## Team\n\n|  [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fpapiguy.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>papiguy\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fpapiguy)   | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fmvromanov.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>mvromanov\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fmvromanov) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Ffayd404.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>fayd404\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Ffayd404) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fikerr.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>ikerr\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fikerr) |\n|:--------------------------------------------------------------------------------------------------------------------:| :---: | :---: | :---: |\n|                                                  CTO & Venture Lead                                                  | Head of Engineering | Head of Product | Platform & Physics |\n| [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fquerielo.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>querielo\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fquerielo) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FAndreiRudenko.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>AndreiRudenko\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002FAndreiRudenko) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fgajendra906.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>gajendra906\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fgajendra906) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fnafeezable.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>nafeezable\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fnafeezable) |\n|                                                   Three.js Wizard                                                    | Games | QA | Community |\n| [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FJNicoSD.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>JNicoSD\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002FJNicoSD) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fjanvher.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>Jan\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fjanvher) | [\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fkumaranand48.png\" width=\"100\">\u003Cbr>\u003Csub>\u003Cb>Anand\u003C\u002Fb>\u003C\u002Fsub>](https:\u002F\u002Fgithub.com\u002Fkumaranand48) | |\n| Games|Games | Head of SRE | |\n\n## Contributing\n\nWe welcome contributions. Please read [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) before opening a PR.\n\nBug reports, feature requests, and discussions: [GitHub Issues](https:\u002F\u002Fgithub.com\u002Fyour-org\u002Fstemstudio\u002Fissues).\n\nYou can sponsor us via [GitHub Sponsors](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FStem-Studio). Every contribution, large or small, is appreciated.\n\n## License\n\n[MIT](.\u002FLICENSE). See [THIRD-PARTY-NOTICES.md](.\u002FTHIRD-PARTY-NOTICES.md) for the licenses of bundled dependencies.\n\n## Security\n\nFound a vulnerability? Please don't open a public issue. See [SECURITY.md](.\u002FSECURITY.md) for private disclosure.\n\n## Acknowledgements\n\nBuilt on [Three.js](https:\u002F\u002Fthreejs.org), [React](https:\u002F\u002Freact.dev), [Vite](https:\u002F\u002Fvitejs.dev), [Colyseus](https:\u002F\u002Fcolyseus.io), [Monaco Editor](https:\u002F\u002Fmicrosoft.github.io\u002Fmonaco-editor\u002F), [Ammo.js](https:\u002F\u002Fgithub.com\u002Fkripken\u002Fammo.js), [Rapier](https:\u002F\u002Frapier.rs), and [Bun](https:\u002F\u002Fbun.sh).\n","StemStudio 是一个基于浏览器的3D游戏引擎，提供了一个完整的创作环境，包括场景编辑、行为脚本编写、物理模拟、多人游戏支持以及AI助手等功能。项目使用TypeScript开发，并基于Three.js构建3D场景编辑器，支持JavaScript编写的对象行为脚本和Ammo.js\u002FRapier物理引擎集成。此外，它还提供了本地优先的数据持久化方案（IndexedDB或文件系统访问API），无需云端账户即可实现项目的自动保存与管理。适合于希望在无云环境下快速创建、测试及分享3D游戏原型的开发者或团队使用。","2026-06-11 04:07:35","CREATED_QUERY"]