
Jin Ping Mei: Ledger of Desire
Twenty days of alliances, desire, and public reckoning.
- Scope
- 20-day story
- Routes
- 5 routes
- Type
- Interactive game
- Touch controls
- ✓
01 · Game Center
Branching stories you can play free in your browser — no download required.

Twenty days of alliances, desire, and public reckoning.

A fox spirit descends on the Lantern Festival to save a mortal scholar.

A rain-night otome mystery under the cat-spirit mandate.
etaWorldOS is a Web game building infrastructure, not only a game catalog. Its core is a browser-native 3D World Builder for shaping terrain, placing voxel and GLB objects, searching the shared asset library, adding music, and starting from editable themed worlds in real time with Three.js and WebGL.
The builder is backed by a reusable asset foundation: models, textures, audio, shaders, loaders, and self-hosted vendor runtimes. These resources make the path from an empty browser tab to a playable 3D world concrete, inspectable, and shareable — without requiring a Unity export or a separate native app.
The Game Center is the proof layer: rhythm racing, tower defense, snooker, tank battles, and other native Web games built on the same browser-first principles. The engineering blog opens up the systems behind them, from rendering and physics to cameras, shaders, and asset loading.
A dozen native Three.js / WebGL 3D games — rhythm racing, tower defense, snooker, snake-crossroad, tank battles. Instant play, shared leaderboards, no download, works on desktop and mobile.
Build editable browser-native worlds with terrain, voxel and GLB models, searchable game assets, online music, seven themed templates, and a self-hosted Three.js runtime.
A growing set of free single-purpose tools for gamers and indie devs — HoYoverse gacha probability calculator (Genshin / HSR / ZZZ), Kepler equation solver, TLE decoder, moon phase.
Pokémon of the Forest ships no GLB files, no PNG textures, no baked normal maps. Every creature is marching-cubes-meshed from Wyvill metaballs at boot; every leaf is a 2D-canvas Bézier fill baked into a CanvasTexture; every terrain patch is an analytic heightfield sampled onto a PlaneGeometry; every skin material is a MeshPhysicalMaterial with a custom subsurface-wrap term injected via onBeforeCompile. This post walks the seven techniques that let a browser game with ~24k lines of TypeScript render Pallet Town without downloading a single texture.
Pokémon of the Forest's opening chapter — pick a starter, catch three research bugs, upgrade your net, cross the meadow, find rare bait, defeat the guardian — runs on a single ChapterDirector class that accepts a discriminated-union event and either advances a step, mutates a side condition, or rejects the event with a typed error code. No flags scattered across the codebase, no "did we already do this" audits, no invalid save states.
The infinite-scrolling town in our Infinitown gamecenter port isn't procedurally generated — it's a Möbius carpet. A 9×9 pool of pre-built chunks maps onto a 9×9 grid of fixed container slots through modulo arithmetic, and camera drags rebind slots to different pool entries instead of spawning new geometry. This post walks the four moving parts (pool, containers, mapping, drag event) and explains why the whole system holds together with zero allocations at runtime.
Yes. Every game in the MetaWorldOS Game Center is a native browser game built with Three.js on WebGL 2. Nothing to install, no plugin, no Unity WebGL bootstrap — the whole game loads over a normal HTTPS request in under a second on a broadband connection and starts running immediately. Free tier requires no account.
Three.js is a JavaScript library that wraps WebGL 2, the browser's native GPU API. It gives you the same underlying GPU access as Unity or Unreal — hardware instancing, PBR materials, post-processing — but ships zero runtime download because the browser already has WebGL. On mid-range hardware you get a stable 60 fps for the kind of games in our Game Center (a few thousand draw calls, streaming asset loads).
Yes. Every game auto-detects mobile Safari, mobile Chrome, and in-app browsers, then enables touch controls, halves the render resolution when needed, and lowers post-processing to hit 60 fps on mid-range Android and any recent iPhone. No separate app version — the same URL works everywhere.
The full Game Center is free with no ads inside gameplay. An account is optional — you only need one to submit to shared leaderboards or sync progress across devices. Sign-up is one form field, no email verification loop.
The foundation includes the 3D World Builder, seven editable voxel and low-poly templates, searchable GLB models, reusable textures, online and bundled game audio, self-hosted Three.js vendor runtimes, browser-native rendering patterns, and working Web game examples in the Game Center.
Yes. The engineering blog documents every non-trivial system we ship: the 700-line Keplerian solar system, real-time meteor showers in WebGL, an SGP4 satellite tracker running client-side, and per-game breakdowns of physics, camera, and shader work. If you're curious about doing this yourself, the blog is the fastest primer.