hilo3d 2.0.0-alpha.8 → 2.0.0-alpha.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,148 @@
1
1
  # Unreleased
2
2
 
3
+ # 2.0.0-alpha.9 (release candidate)
4
+
5
+ This section describes the prepared release source; npm publication is pending.
6
+
7
+ ### Features
8
+
9
+ - Add the standalone Hilo Studio scene editor with a Blender-inspired workspace, shared-engine
10
+ WebGL2/WebGPU viewport, picking, transform gizmos, multi-selection, material and GLB/image asset
11
+ authoring, prefab overrides, isolated script previews and animation timelines. Include durable
12
+ multi-scene projects, undo/redo and recovery, versioned JSON/offline schemas and portable AI
13
+ workspace ZIPs, a self-hosted capability-based collaboration service, and GitHub Pages deployment
14
+ with production checks for root and project-subpath URLs.
15
+
16
+ - Add optional `@hilo/addon-audio`: bounded real/virtual voices, spatial attenuation/cones/Doppler,
17
+ budgeted occlusion, concurrency and weighted cues, hierarchical mixing/snapshots/ducking/reverb,
18
+ pinned decode caching, media streaming and Stage-owned lifecycle. Include real Chromium PCM,
19
+ transport/cache tests and installed-tarball streaming validation.
20
+
21
+ - Add optional `@hilo/addon-assets`: KTX2 ETC1S/UASTC module-worker transcoding, versioned texture
22
+ leases, cancellation/priority, coarse-first mip residency, independent budgets, hidden-resource
23
+ eviction and budgeted recovery replay. This is the initial A0 texture slice; geometry pages and
24
+ sparse HTTP loading remain separate work.
25
+ - Make renderer idle waits snapshot already submitted work so continuous rendering cannot starve
26
+ asset retirement; preserve complete fence settlement on failure.
27
+ - Add `Renderer.uploadTextures()` for graph-validated, submission-fenced texture warming without
28
+ draws.
29
+ - Add a texture residency lab and actual compressed texture/package coverage on both backends.
30
+ - Add portable local specular reflection probes with box parallax correction, bounded per-pixel
31
+ blending and roughness filtering, shared by PBR/clearcoat and SSR fallback composition. Add
32
+ budgeted HDR dynamic captures with atomic publication, failure rollback and device recovery; the
33
+ Adjacent gallery demonstrates connected rooms, moving receivers and lighting updates.
34
+ - Add `RenderPipelineContext.recordView()` for isolated auxiliary cameras in the same graph and
35
+ submission, and runtime-owned `RenderPipelineCreateContext.createRenderTarget()` recipes that
36
+ rebuild after explicit renderer resource release. Parent leases are suspended during callbacks;
37
+ nested/async callbacks and caught callback failures cannot produce partial frame submissions.
38
+
39
+ - Add Live2DModel.load with SDK-independent motion, expression, parameter and effect controls; Stage
40
+ automatically advances and destroys owned sessions/assets. Add abortable complete loading, shared
41
+ bounded runtime initialization and explicit asset versioning. Runtime assets are included in the
42
+ addon and loaded locally on demand; applications need no SDK setup or runtimeUrl configuration.
43
+ - Add portable render-node raster contributions automatically discovered by Forward, and
44
+ hierarchical transparent sorting groups with matching Camera2D pointer selection.
45
+ - Add an official Hatsune Miku Live2D example with pointer tracking, motion controls and head
46
+ close-ups, preserved source/license records and an offline example runtime built from separately
47
+ licensed SDK inputs.
48
+
49
+ - Add the optional `@hilo/addon-live2d` ESM package: application-owned Cubism source adaptation,
50
+ model3 assets, portable deforming meshes, basic blending, soft/inverted masks and explicit
51
+ lifetime. Core/Framework retain their separate licenses; character resources remain external and
52
+ advanced Cubism 5.3 composition is rejected.
53
+ - Add `RenderPipelineContext.createOrderedRendererList()` for explicit ordered mesh membership,
54
+ including hidden mask sources and mixed material queues, through shared draw preparation and RHI.
55
+
56
+ - Expose immutable render-pipeline invocation policies for camera type and per-frame call limits.
57
+ Forward supports arbitrary cameras and multiple invocations; Clustered declares its existing
58
+ single-perspective-camera limit. The shared host validates calls before recording and rejects
59
+ partial-frame submission after a policy violation. Custom factories without a policy retain their
60
+ previous behavior.
61
+ - Add opt-in WebGPU dynamic diffuse global illumination to Clustered Forward+: camera-independent
62
+ rigid PBR BVH tracing, budgeted visibility-aware irradiance probes, dynamic lighting, bounded
63
+ bounce feedback, relocation, transactional history and device recovery. Both indirect and direct
64
+ clustered PBR sample the same field; hybrid SSGI replaces overlapping transport with a signed
65
+ correction. Add validated options, contribution control and submitted resource/coverage
66
+ diagnostics.
67
+ - Add the original Blender-authored Afternoon Atelier, with warm oak and linen furniture, an
68
+ integrated up/down linen floor lamp, visible wall-color reflection across sofa and rug, dynamic
69
+ lamp/door/wall controls, live night/day environment changes, public OrbitControls, stable captures
70
+ and lifecycle-safe teardown.
71
+
72
+ ### Documentation
73
+
74
+ - Extend the consumer game skill with exact-version audio, KTX2 residency and Live2D guidance. Check
75
+ synchronized package versions and skill regressions in ordinary CI preflight.
76
+
77
+ - Separate current engineering/rendering contracts and the roadmap from archived implementation
78
+ plans. Correct prerelease installation, exposure, temporal, material ABI and SRP guidance.
79
+ - Publish a concise llms.txt and source Markdown with build provenance; add source/anchor/command
80
+ checks and synchronized public-API recipes verified against packed core/addon packages.
81
+
82
+ ### Changes
83
+
84
+ - Reserve uniform-block binding 10 for optional local reflection data; custom block allocation now
85
+ starts at 11. Existing material scalar/texture layouts and material sampler indices are unchanged.
86
+ Applications using explicit custom binding 10 must select an unreserved binding.
87
+
88
+ - Keep Live2D build and package verification tooling inside the addon. Remove its obsolete public
89
+ SDK builder CLI/tools export, optional build-tool peers and unused standalone provider output;
90
+ examples reuse bundler-emitted runtime assets and copy only their license notices.
91
+
92
+ - Separate SRP invocation context, resource/history ownership and pass execution, and register
93
+ built-in preparation adapters at pass construction instead of identifying pass classes in the
94
+ central setup path. Split Clustered shader, layout and parameter modules from frame orchestration
95
+ while preserving shader sources and the shared Render Graph/RHI path.
96
+ - Replace quadratic Render Graph ready-pass scans with stable minimum-index heap scheduling and
97
+ reusable typed-array workspace, preserving existing dependency validation and pass order.
98
+
99
+ ### Fixes
100
+
101
+ - Normalize ImageBitmap uploads explicitly on WebGL2, preserving row direction and low/zero-alpha
102
+ RGB bytes through cropping, cube/array uploads and recovery without Canvas2D conversion.
103
+ - Dispatch nested non-Mesh destruction overrides and complete sibling/renderer cleanup after errors.
104
+
105
+ - Detect native WebGL2 context loss before delayed browser notification, preserve lost queue state
106
+ through abort cleanup, and keep restoration enabled by preventing the eventual loss event.
107
+
108
+ - Release final-owner vertex/index and uniform-buffer recipes when meshes are destroyed, while
109
+ preserving shared geometry aliases, custom UBOs and submission-aware native retirement.
110
+
111
+ - Bound completed Render Graph transient-resource retention by idle count, estimated bytes and age
112
+ while preserving in-flight submission ownership and exact-descriptor reuse.
113
+ - Recycle abandoned graph builders after recording/setup failures and reject stale references
114
+ without retaining every failed frame's parameters and resource providers.
115
+ - Separate content liveness from ordering hazards so unused readers and fully overwritten writes are
116
+ culled. Preserve load/read-write/partial-clear dependencies and support complete then partial
117
+ clears of a new transient buffer in one pass.
118
+ - Commit history validity from the final surviving store/discard operations. A discarded current
119
+ slot becomes invalid without replacing the last stored history.
120
+ - Report timeline observer failures after committed GPU work without rolling back runtime/history
121
+ state; observe asynchronous diagnostic and runtime callbacks independently from GPU timestamps.
122
+ - Honor `material-front-to-back` using cached view-space depth within opaque state groups, including
123
+ explicit instance batches. Keep mixed opaque/transparent sorting transitive so opaque entries
124
+ cannot obstruct transparent depth ordering.
125
+
126
+ - Stabilize static DDGI with fixed per-probe quadrature, geometry-stable relocation and exact
127
+ submission-aware light revisions. Correct TAA/TAAU jitter-free history reprojection, neighborhood
128
+ shading-change detection and depth-checked one-pixel silhouette motion coverage, preventing
129
+ repeating edge shimmer while retaining camera-cut and moving-object rejection.
130
+
131
+ - Reject unsupported or rapidly moving SSR missed-hit history, fade confidence-premultiplied
132
+ radiance together with confidence, and honor zero history weight on every resolve path. This
133
+ removes red reflection trails on empty floors during fast camera orbit.
134
+
135
+ - Keep built-in scene vertex positions invariant across depth, motion, material-attributes and color
136
+ variants, eliminating jitter-dependent attribute holes and flickering SSR black speckles. Remove
137
+ the red and blue point fill lights that produced circular floor highlights in Afterimage.
138
+
139
+ - Apply runtime normal-map scale in shared raster shading, restoring smooth Car Concept paint on
140
+ WebGL2 and WebGPU.
141
+ - Traverse SSR Hi-Z cells conservatively and refine thin-surface crossings before rejecting hits.
142
+ Keep integer history counts separate from confidence during packing and bilinear reprojection.
143
+ - Refine the Afterimage studio camera, paint, lighting, and polished floor reflection; fit portrait
144
+ viewports and cap physical rendering dimensions to the declared GPU budget.
145
+
3
146
  # 2.0.0-alpha.8 (2026-09-08)
4
147
 
5
148
  ### Breaking changes
package/README.md CHANGED
@@ -24,7 +24,9 @@
24
24
  </div>
25
25
 
26
26
  > Hilo3D 2.0 is currently in alpha. Existing projects should review the
27
- > [breaking changes](./CHANGELOG.md#breaking-changes) before upgrading.
27
+ > [breaking changes](./CHANGELOG.md#breaking-changes) before upgrading. Repository and website
28
+ > documentation may include Unreleased APIs; match [version boundaries](./documentation/VERSIONS.md)
29
+ > to the installed package.
28
30
 
29
31
  ## Why Hilo3D
30
32
 
@@ -50,9 +52,14 @@ WebGPU path or a production WebGL 2 compatibility path.
50
52
  ## Install
51
53
 
52
54
  ```sh
53
- npm install hilo3d
55
+ npm install --save-exact hilo3d@next
54
56
  ```
55
57
 
58
+ `next` selects the 2.0 prerelease; `--save-exact` pins the resolved version. The unqualified
59
+ `latest` channel may still select 1.x. Match optional addon versions to the installed core. See
60
+ [version boundaries](./documentation/VERSIONS.md) and the
61
+ [complete quickstart](./documentation/GETTING_STARTED.md).
62
+
56
63
  Hilo3D is ESM-only. It targets modern browsers with WebGPU or WebGL 2; WebGL 1 and legacy global
57
64
  builds are outside the 2.0 contract.
58
65
 
@@ -85,11 +92,19 @@ const stage = await Hilo3d.Stage.create({
85
92
  new Hilo3d.Mesh({
86
93
  geometry: new Hilo3d.BoxGeometry(),
87
94
  material: new Hilo3d.PBRMaterial({
88
- baseColor: new Hilo3d.Color(0.83, 0.12, 0.09)
95
+ baseColor: new Hilo3d.Color(0.83, 0.12, 0.09),
96
+ metallic: 0.1,
97
+ roughness: 0.6
89
98
  })
90
99
  }).addTo(stage);
91
100
 
92
101
  stage.addChild(new Hilo3d.AmbientLight({ amount: 1 }));
102
+ stage.addChild(
103
+ new Hilo3d.DirectionalLight({
104
+ amount: 3,
105
+ direction: new Hilo3d.Vector3(-1, -1, -1)
106
+ })
107
+ );
93
108
 
94
109
  const ticker = new Hilo3d.Ticker(60);
95
110
  ticker.addTick(stage);
@@ -188,6 +203,11 @@ resource, shader, and recovery contracts.
188
203
 
189
204
  ## Documentation
190
205
 
206
+ - [Getting started](./documentation/GETTING_STARTED.md) and
207
+ [checked recipes](./documentation/RECIPES.md)
208
+ - [AI documentation index](./llms.txt) and [version policy](./documentation/VERSIONS.md)
209
+ - [Roadmap](./documentation/ROADMAP.md)
210
+
191
211
  - [Getting started and API documentation](https://hilo3d.js.org/docs/)
192
212
  - [Example gallery](https://hilo3d.js.org/examples/list.html)
193
213
  - [`hilo3d-game` Agent Skill](https://github.com/hiloteam/Hilo3d/tree/dev/skills/hilo3d-game)
@@ -195,13 +215,13 @@ resource, shader, and recovery contracts.
195
215
  - [Rendering architecture](./documentation/RENDERING_ARCHITECTURE.md)
196
216
  - [PBR, HDR, and post-processing](./documentation/PBR_AND_POST_PROCESSING.md)
197
217
  - [Modern WebGPU rendering roadmap](./documentation/MODERN_WEBGPU_RENDERING_ROADMAP.md)
198
- - [Material system modernization](./documentation/MATERIAL_SYSTEM_MODERNIZATION.md)
199
- - [Temporal rendering](./documentation/TEMPORAL_RENDERING_REMEDIATION.md)
218
+ - [Material system](./documentation/MATERIAL_SYSTEM.md)
219
+ - [Temporal rendering](./documentation/TEMPORAL_RENDERING.md)
200
220
  - [Screen-space global illumination](./documentation/SCREEN_SPACE_GLOBAL_ILLUMINATION.md)
201
221
  - [Froxel volumetric lighting](./documentation/VOLUMETRIC_LIGHTING.md)
202
222
  - [Physical atmosphere and weather](./documentation/PHYSICAL_ATMOSPHERE_AND_WEATHER.md)
203
223
  - [2D rendering and multi-camera composition](./documentation/2D_RENDERING.md)
204
- - [Scriptable render pipeline](./documentation/SCRIPTABLE_RENDER_PIPELINE_PLAN.md)
224
+ - [Scriptable render pipeline](./documentation/SCRIPTABLE_RENDER_PIPELINE.md)
205
225
  - [Breaking changes](./CHANGELOG.md#breaking-changes)
206
226
 
207
227
  ## Develop locally
package/README_ZH.md CHANGED
@@ -26,6 +26,9 @@
26
26
  > Hilo3D 2.0 目前处于 alpha 阶段。现有项目升级前应先查看
27
27
  > [破坏性变更](./CHANGELOG.md#breaking-changes)。
28
28
 
29
+ 源码与网站文档可能包含 Unreleased API;请按 [版本边界](./documentation/VERSIONS.md)
30
+ 核对已安装包的类型声明。
31
+
29
32
  ## 为什么选择 Hilo3D
30
33
 
31
34
  Hilo3D 在同一引擎中兼顾高层场景创作和底层 GPU 控制。应用始终使用同一套场景、材质、渲染目标与 shader 契约,渲染器则选择原生 WebGPU 路径或生产级 WebGL
@@ -49,9 +52,15 @@ Hilo3D 在同一引擎中兼顾高层场景创作和底层 GPU 控制。应用
49
52
  ## 安装
50
53
 
51
54
  ```sh
52
- npm install hilo3d
55
+ npm install --save-exact hilo3d@next
53
56
  ```
54
57
 
58
+ `next` 选择 2.0 预发布版本,`--save-exact`
59
+ 锁定解析后的版本;不带 tag 的安装可能仍选择 1.x。可选 addon 必须与核心版本一致。参阅
60
+ [版本边界](./documentation/VERSIONS.md)、
61
+ [完整快速开始](./documentation/GETTING_STARTED.md)、[可编译 recipes](./documentation/RECIPES.md) 和
62
+ [AI 文档索引](./llms.txt)。
63
+
55
64
  Hilo3D 只提供 ESM。目标环境是支持 WebGPU 或 WebGL 2 的现代浏览器;WebGL
56
65
  1 和旧式全局构建不属于 2.0 契约。
57
66
 
@@ -82,11 +91,19 @@ const stage = await Hilo3d.Stage.create({
82
91
  new Hilo3d.Mesh({
83
92
  geometry: new Hilo3d.BoxGeometry(),
84
93
  material: new Hilo3d.PBRMaterial({
85
- baseColor: new Hilo3d.Color(0.83, 0.12, 0.09)
94
+ baseColor: new Hilo3d.Color(0.83, 0.12, 0.09),
95
+ metallic: 0.1,
96
+ roughness: 0.6
86
97
  })
87
98
  }).addTo(stage);
88
99
 
89
100
  stage.addChild(new Hilo3d.AmbientLight({ amount: 1 }));
101
+ stage.addChild(
102
+ new Hilo3d.DirectionalLight({
103
+ amount: 3,
104
+ direction: new Hilo3d.Vector3(-1, -1, -1)
105
+ })
106
+ );
90
107
 
91
108
  const ticker = new Hilo3d.Ticker(60);
92
109
  ticker.addTick(stage);
@@ -187,13 +204,13 @@ compute 使用引擎经过验证的 `ComputeShader` 契约。
187
204
  - [渲染架构](./documentation/RENDERING_ARCHITECTURE.md)
188
205
  - [PBR、HDR 与后处理](./documentation/PBR_AND_POST_PROCESSING.md)
189
206
  - [现代 WebGPU 渲染路线图](./documentation/MODERN_WEBGPU_RENDERING_ROADMAP.md)
190
- - [材质系统现代化](./documentation/MATERIAL_SYSTEM_MODERNIZATION.md)
191
- - [时域渲染](./documentation/TEMPORAL_RENDERING_REMEDIATION.md)
207
+ - [材质系统现代化](./documentation/MATERIAL_SYSTEM.md)
208
+ - [时域渲染](./documentation/TEMPORAL_RENDERING.md)
192
209
  - [屏幕空间全局光照](./documentation/SCREEN_SPACE_GLOBAL_ILLUMINATION.md)
193
210
  - [Froxel 体积光](./documentation/VOLUMETRIC_LIGHTING.md)
194
211
  - [物理大气与天气](./documentation/PHYSICAL_ATMOSPHERE_AND_WEATHER.md)
195
212
  - [2D 渲染与多相机合成](./documentation/2D_RENDERING.md)
196
- - [可脚本化渲染管线](./documentation/SCRIPTABLE_RENDER_PIPELINE_PLAN.md)
213
+ - [可脚本化渲染管线](./documentation/SCRIPTABLE_RENDER_PIPELINE.md)
197
214
  - [破坏性变更](./CHANGELOG.md#breaking-changes)
198
215
 
199
216
  ## 本地开发