pelican-engine 0.3.11 → 0.3.12

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/AGENTS.md CHANGED
@@ -137,8 +137,24 @@ all earlier automatic ropes from that phase; the host tick may still have other
137
137
  partial changes and must be recovered from a known-good checkpoint. The source
138
138
  checkout includes `examples/rope-particles`.
139
139
 
140
+ For each latest-tick contact, `reactionImpulse` and `reactionAngularImpulse`
141
+ report the opposite impulse produced by the particle's position projections,
142
+ and its moment about the world origin. These optional fields are absent when
143
+ restoring older contact snapshots. They do not automatically act on a rigid body.
144
+ For an explicitly mapped dynamic body, game code can read its actual world center
145
+ of mass via `ctx.physics.centerOfMass(id)`, apply the linear impulse, and apply
146
+ `reactionAngularImpulse - centerOfMass × reactionImpulse` as torque impulse.
147
+ Apply each contact at most once for its `tick`; repeated `inspect` calls return
148
+ the same contacts. The source checkout has an illustrative `examples/rope-reaction`.
149
+
150
+ This sampled, manually applied reaction is delayed and uses positional correction,
151
+ not a coupled contact solver: it omits body velocity/effective mass, friction and
152
+ continuous collision. Applying the linear and angular impulses uses separate
153
+ operations and is not transactional if a tick fails; recover from a known-good
154
+ checkpoint. It must not be represented as complete two-way rigid-body interaction.
155
+
140
156
  This is an unverified development-stage increment, not complete rope physics:
141
- there is no built-in rope mesh, rigid-body reaction, segment or self collision,
157
+ there is no built-in rope mesh, automatic rigid-body reaction, segment or self collision,
142
158
  or tearing. Moving entities to particle positions is not a rope renderer or
143
159
  coupled physics. Plane normals must be unit length; `offset` is the signed
144
160
  normal distance from the origin. Host intervals must be between 1/1000 and
package/distribution.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": "pelican.npm-distribution",
3
- "version": "0.3.11",
3
+ "version": "0.3.12",
4
4
  "files": {
5
- "AGENTS.md": "fddb7363380ae3c3358c4253e2e26604402ae0ccd4c8bb1fed050053d8497ac9",
5
+ "AGENTS.md": "3dabfa6d929c2a64fb70e64ad7588c921ace5a8c6f664c0e9e3c6211727e4d57",
6
6
  "CONTRIBUTING.md": "0ffad5d841d90f319fc50a75b81d3c0ad6dab8d5d9bec2846c65c7f8358d5a50",
7
7
  "docs/AI-WORKFLOW.md": "aa992686df93f791795f6f3fce01713d812eea6a1b9556f07411ac5847278efa",
8
- "docs/api/index.json": "59a2f8e53b6c7dab288669a4ecf871a69215b6c321daf032dee2bd0b9a90f55b",
9
- "docs/api/REFERENCE.md": "dacc993cdeaae28d8109fff996f73e13a0353c5738ffc1f395d2e539b4b3146c",
8
+ "docs/api/index.json": "5af157ee6b03d4d9cb4e26b53540bf92105f20d9d56a443383a39d185f2bced0",
9
+ "docs/api/REFERENCE.md": "7cc71bcb17be6a914602101bcd3a4e353c026fdab12d4bc35d869caaef8f787c",
10
10
  "docs/ARCHITECTURE.md": "3184b73592d466390e7793b1cf39bbb80d6052b523fba7e7cb377b5207074627",
11
11
  "docs/assets/pelican-mark.svg": "407b10cd7e292ea83cf5dba4046fb2f01c7d566a14014c55deda3a2984562b4d",
12
12
  "docs/CAPABILITIES.md": "92950817497d8c63db07830db96dc93c877befa8d038320feed1ae1f1a053cb1",
@@ -14,14 +14,14 @@
14
14
  "docs/GETTING-STARTED.md": "5519ebe4e513e8ae4517c04948ee9dc70bcb1e3d04a65d468a6537c838502663",
15
15
  "docs/GRAPHICS-GUIDE.md": "e3d0f7df6189ca3f88d81af5ffaf393f5d6bf39b9e66167bb2f64b39194b514c",
16
16
  "docs/npm/DISTRIBUTION.md": "ff25e039921a85ba253c27608c77ed614a036117d7a04f908a78d1e3ed3f19ef",
17
- "docs/npm/GAME-AUTHOR.md": "fddb7363380ae3c3358c4253e2e26604402ae0ccd4c8bb1fed050053d8497ac9",
17
+ "docs/npm/GAME-AUTHOR.md": "3dabfa6d929c2a64fb70e64ad7588c921ace5a8c6f664c0e9e3c6211727e4d57",
18
18
  "docs/PELICAN-MIGRATION.md": "c5d6ab8e5186f4d36720a0a01d1a7e4157a5d386c5400e2db99571a7d10a1e49",
19
19
  "docs/PHYSICS-LIFECYCLE-ISSUE.md": "cc78917462de4e7e9b68e77c742192ce213b4be5b516d2ba943251fff46977ac",
20
20
  "docs/RENDER-BACKENDS.md": "d981ea94742a835d028db37d536fb7fba05102e37bc6274a37baf74f5034b954",
21
21
  "docs/ROADMAP.md": "29ac1c54f36064e23c17cfe7f549d6860889257a57d1227e322958aa9c281568",
22
- "docs/STATUS.md": "916856579e74a9c4dfd753e26f7f002c1c818a9095d8711d41b0338e74a385a8",
22
+ "docs/STATUS.md": "41d6801a0e201ec0cbfdd6ef9cc957ab3a2d5416bf1ca505b51c8f552b67fd6d",
23
23
  "docs/THIRD-PARTY-NOTICES.md": "58f9b72e2b4dfaaaf2a4c08b9bde9ecef3d2b7e7d65fccd782ed54f39fa76fdc",
24
- "engine.manifest.json": "8e06cd1352089820f04224d422c8d685e88159dc0bf8afaf22ba3f17001918da",
24
+ "engine.manifest.json": "38fbebb2e3fdfe5d036276ad98245ecbf2924c68dbf47a4410c17c393a400b7f",
25
25
  "lib/assets/audio.js": "6facdce4e053afd172af5b9407569b035169844ea17b49f93f8b67f72b78895f",
26
26
  "lib/assets/errors.js": "70572678655c6e53179d31920d71f29882d373a0e12d560220bb0fc2cd74f2cc",
27
27
  "lib/assets/glb.js": "b808479a36299c154db97f50c16863a3b5a2c61f725e66bf01d01a5f62a288a5",
@@ -51,7 +51,7 @@
51
51
  "lib/experiments/world/types.js": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
52
52
  "lib/experiments/world/world.js": "e335a96b1a2b217b69077f8e4b01aed7fd54b87e39bd5ac4138555d27ad9afe1",
53
53
  "lib/navigation/index.js": "5ee447333ff2152b1f08b34a68e16dd058448b0a4d2f8b3eae0fb8e76f52a1a9",
54
- "lib/physics/index.js": "6e9c852177426ef217aaf661d81cf0d2bf349e99d8797ddf2482f820e34e5c26",
54
+ "lib/physics/index.js": "19eeab8b07a3fd25b5369e162a8f82ae9509341f928f21806cd5ecfd3058df5b",
55
55
  "lib/protocol/index.js": "875c9f7ba4e67adc182aa177bc5017da0907ff9c584ba523021a219b26e38c89",
56
56
  "lib/renderer/acceleration.js": "50ccafc9bc5b463470a23cffbdff8dc1a29a77bada44d21caf1eb0c3f9de2c65",
57
57
  "lib/renderer/browser.js": "0ef885517bef24b12a68e898d274643f5a8ee164d1956c27dc470a9a6c5a431e",
@@ -123,10 +123,10 @@
123
123
  "lib/runtime/world.js": "c43621fbaca8bd2b0d6477a96e60e895312f0f7b1eb97614b6e4f9b716129ea1",
124
124
  "lib/schema/index.js": "594429eecb4494c4af2f3d04537be3211f2c9297a1fc555bbba5d028d8627965",
125
125
  "lib/sdk/graph-values.js": "a58c00f127cb82aba5fd2824981942844e06d9a59a88a05e35d1d3df2fc7ed2f",
126
- "lib/sdk/index.d.ts": "f08d8c8e97719ac8963417f22296840bf2e72ff2d38c10a24d4239c40397880e",
127
- "lib/sdk/index.js": "d6b0fd91442a9ccc2e56363d93e00baf850375ab15cbbd2c3dbde3bc0135e301",
126
+ "lib/sdk/index.d.ts": "ecf2c08cdfe4f9bf0b184dfe9dbdcc1104b1c32936edf8217f168df2adf17d75",
127
+ "lib/sdk/index.js": "7945cabb4824d88987ae450eeb36edaa3c4681fc589b0a6efeace1d1b8113c0b",
128
128
  "lib/simulation/rope-plugin.js": "6c1eef7109d8838c1a41400698998ff511c24a22c30cacb4c2c5ec0d02e1034b",
129
- "lib/simulation/rope.js": "9a2653d948062d9681ec7ebe3a4e594ece902a9e64628e57a831a20bc3374344",
129
+ "lib/simulation/rope.js": "0304f637696364dcc21c21f1f274cf2ba9c7dd2276073322071ba5f238fe34c1",
130
130
  "lib/tools/api-index.js": "6aedc153a0ce8eaf18239b0368a76a8ae8e4397bd8e6cdf571889bc39265be5d",
131
131
  "lib/tools/browser-session.js": "1fa7f78d4752d8a59a55dc2283b4d42cd1df230f0d5a5dc80c6d78ade45b4cdb",
132
132
  "lib/tools/cli.js": "ad5e915f046cc2e6bf612edd1a88cc33758b1d2b0ce2f057be50e0a2c4770062",
@@ -197,7 +197,7 @@
197
197
  "licenses/undici-types/LICENSE": "a6db8096b2707bc0102d256917d4d33f298ba36d8c3f25de067a2b5bb379db27",
198
198
  "licenses/uniq/LICENSE": "e67aed7df22dc8031e4fcf5338fe91cb33e3817e5c58a99a2a2802eea9069791",
199
199
  "licenses/vite/LICENSE.md": "a22152baa1aef74402443008e767e7c689a524c0909d19b0431d97f5ab066a13",
200
- "package.json": "50b4c19ea587085444043681064c8acdc6500b2329bd54cacf273f92f0479499",
200
+ "package.json": "de6c6a5791dd6e0e31247c595beb9b325b0e85a489c5fcf0e6f2a6a02bc36092",
201
201
  "README.md": "ff25e039921a85ba253c27608c77ed614a036117d7a04f908a78d1e3ed3f19ef",
202
202
  "web/index.html": "d89d6a5b5be3beae3627a8ed506ac308b165d264fb8696be3afd79fcca2f26ee"
203
203
  }
package/docs/STATUS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 版本与发布
4
4
 
5
- - 当前版本为 `0.3.11`,包、锁文件、引擎、SDK、编译器和示例中的版本保持一致。下一项功能完成后统一递增并推送;相同版本不能重复发布。
5
+ - 当前版本为 `0.3.12`,包、锁文件、引擎、SDK、编译器和示例中的版本保持一致。下一项功能完成后统一递增并推送;相同版本不能重复发布。
6
6
  - 推送主线会通过 GitHub Actions 和 npm 可信发布更新 `latest`;GitHub Release 用于记录里程碑。历史版本和旧标签保持原样,不代表当前源码通过。
7
7
  - 当前按用户要求仅允许编译和构建,不运行测试、浏览器、GPU、性能或其他验证。普通版本号不意味着运行行为、硬件或完整引擎已验收。
8
8
 
@@ -13,6 +13,7 @@
13
13
  - 刚体首步前删除存在已知缺陷;历史候选存在旧快照兼容及危险历史回放风险,不得通过修改夹具或在主进程回放危险历史掩盖。有关背景与原始证据保留在历史任务文档中。
14
14
  - 正交网格导航新增批量障碍更新接口;它只处理单个网格的阻挡状态,不等于世界流送、实体变换或物理联动。该增量尚未进行运行行为验证。
15
15
  - CPU 粒子绳索已通过 `ctx.ropes` 接入游戏服务和 Host 快照,可选择手动步进或在物理阶段后自动固定步进;仅支持粒子与采样球体/平面的单向碰撞。尚无绳索网格渲染、双向刚体交互、绳段/自碰撞或撕裂,不代表完整绳索能力。该增量尚未进行运行行为或快照兼容验证。
16
+ - 粒子接触输出位置投影产生的反向冲量及其关于世界原点的角冲量,游戏可手动映射至刚体;这仍是延迟采样,不含刚体有效质量、速度反馈、摩擦或连续碰撞,不代表完整双向耦合。新增接口和示例尚未执行运行或快照验证。
16
17
  - 布料、绳索、软体、流体、连续世界、导航、动画、音频和其他首发能力仍需按各自依赖完成,不能把独立候选或局部实现写成整项完成。
17
18
 
18
19
  ## 单线接续