incanto 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/editor/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Incanto Scene Editor</title>
7
7
  <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><rect width='16' height='16' rx='3' fill='%236ee7dc'/><text x='8' y='12' text-anchor='middle' font-size='11' font-family='monospace' fill='%230e1018'>i</text></svg>" />
8
- <script type="module" crossorigin src="./assets/index-D-bWhSDj.js"></script>
8
+ <script type="module" crossorigin src="./assets/index-B5y_MdYb.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="./assets/GameServer-C56iOUgF.js">
10
10
  <link rel="stylesheet" crossorigin href="./assets/index-D8QvwvOm.css">
11
11
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incanto",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Vibe-coding-first web game engine SDK — JSON-driven scenes on three.js",
5
5
  "keywords": [
6
6
  "game-engine",
@@ -50,7 +50,9 @@ One call does register → load → physics → input → renderer → start. Ph
50
50
  `'auto'`: Rapier is enabled iff the tree has physics bodies (force with
51
51
  `physics: true|false`). Keyboard attaches to `window` (`keyboard: false`
52
52
  disables); `pointer: { lockOnClick: false }` for look without lock. `seed` /
53
- `fixedHz` / `pixelRatio` pass through. The manual `Engine` + `loadScene` +
53
+ `fixedHz` / `pixelRatio` / `adaptiveResolution` pass through (adaptive
54
+ resolution is ON by default: slow frames render fewer pixels and recover
55
+ automatically — pass `false` for screenshots and pixel-diff tests). The manual `Engine` + `loadScene` +
54
56
  `Renderer3D` boot still exists for full control.
55
57
 
56
58
  Imperative per-frame logic can hang off `game.engine.updated.connect((dt) => { ... })`; for
@@ -820,10 +820,22 @@ for frames per water body:
820
820
  | `foam: false` | drops the shoreline foam work |
821
821
  | `interaction: false` | stops the per-frame body scan |
822
822
 
823
- Two more, outside water: `createGame3D({ pixelRatio: 1.5 })` — a retina display
824
- renders **4× the pixels**, and water is fragment-heavy, so capping the ratio is
825
- usually the single biggest win on a Mac; and `environment.bloom`, which adds a
826
- full-resolution HDR pass of its own.
823
+ Two more, outside water. **`environment.bloom`** adds a full-resolution HDR
824
+ pass of its own. And PIXELS: a retina display renders **4× the pixels** of a
825
+ 1× one, which is why a scene that profiles at 690k triangles and 270 draw calls
826
+ can still miss frames — it is fill-bound, not geometry-bound.
827
+
828
+ The engine handles that itself: **adaptive resolution is ON by default**. It
829
+ watches the median frame time over a window and, when frames run slow, renders
830
+ the same world at fewer pixels (down to 60% of the requested ratio, in 15%
831
+ steps), handing them straight back when the frames recover. One hitch never
832
+ moves it; a backgrounded tab never counts. Turn it off for screenshots, video
833
+ capture or pixel-diff tests — and pin the ratio yourself if you would rather
834
+ choose:
835
+
836
+ ```ts
837
+ createGame3D({ canvas, scene, adaptiveResolution: false, pixelRatio: 1.5 });
838
+ ```
827
839
 
828
840
  If a scene feels heavy, measure before guessing — the browser console has the
829
841
  whole story:
@@ -14,7 +14,7 @@
14
14
  "@dimforge/rapier2d-compat": "0.19.3",
15
15
  "@dimforge/rapier3d-compat": "0.19.3",
16
16
  "@pixiv/three-vrm": "^3.5.3",
17
- "incanto": "^0.23.0",
17
+ "incanto": "^0.24.0",
18
18
  "three": "^0.184.0"
19
19
  },
20
20
  "devDependencies": {
@@ -13,7 +13,7 @@
13
13
  "@dimforge/rapier2d-compat": "0.19.3",
14
14
  "@dimforge/rapier3d-compat": "0.19.3",
15
15
  "@pixiv/three-vrm": "^3.5.3",
16
- "incanto": "^0.23.0",
16
+ "incanto": "^0.24.0",
17
17
  "three": "^0.184.0"
18
18
  },
19
19
  "devDependencies": {
@@ -13,7 +13,7 @@
13
13
  "@dimforge/rapier2d-compat": "0.19.3",
14
14
  "@dimforge/rapier3d-compat": "0.19.3",
15
15
  "@pixiv/three-vrm": "^3.5.3",
16
- "incanto": "^0.23.0",
16
+ "incanto": "^0.24.0",
17
17
  "three": "^0.184.0"
18
18
  },
19
19
  "devDependencies": {