An interactive 3D office built with Astro, Three.js, and Lumos for Astro. Walk around, sit at the desk, inspect shelf objects, adjust the standing desk, and ask the Echo Dot to switch the room lights on or off.
Requires Node.js 22.23.4 or newer.
npm ci
npm run dev -- --backgroundUse npx astro dev status, npx astro dev logs, and npx astro dev stop
to manage the background server.
npm run check
npm run build
npm run previewThe main scene is in src/components/content/OfficeGame.astro. Scene behavior
lives in src/scripts/, and runtime models and textures are in public/.
The scripts/check-*.mjs scripts verify character motion and scene behavior.
Model preparation scripts require their original source assets and, in some
cases, Blender; those local source files are not required to run the site.
After changing reference-character.glb, run node scripts/build-mobile-character.mjs
to regenerate the iOS version with 1024-pixel textures. Verify it with
node scripts/check-mobile-character.mjs. In development, /?render-profile=ios
exercises the iOS rendering budget on desktop; it does not emulate iPhone hardware.
Built on Lumos for Astro.
Framework and code licensing is documented in LICENSE.
Third-party models retain their respective licenses and attributions in
public/models/*.LICENSE.txt; those assets are not relicensed by the code license.
The site runs on Cloudflare Workers at https://office.timothyricks.com.
wrangler.jsonc pins the TRICKS account and custom domain. Authenticate with
npx wrangler login, then run npm run deploy to build and publish.
The favicon and app icons are transparent renders of the actual character.
The social image is a clean render of the office without the interface. During
local development, open /?export-branding for the source render controls.