@aura3d/core

中文文档
4.7.0发布于 2026/10/31MITTypeScriptES Module零依赖

Aura3D的引擎生命周期、调度、确定性时间步进、诊断、事件、日志、任务队列和一次性资源范围。

中文使用文档
文档目录3 节
  1. 公共API
  2. 生命周期的合同
  3. 验证

@aura3d /核心

@aura3d/core 拥有引擎生命周期、调度脊柱、确定性时间步进、诊断、事件、日志、任务队列和一次性资源范围。它是根运行时包,不依赖于场景、渲染、物理、动画、资源、输入、音频、脚本、编辑器或仅用于浏览器的api。

公共API

  • Engine:插件初始化、调度程序执行、手动步进、启动/停止控制、事件、诊断、任务队列和资源处置的生命周期所有者。
  • EngineConfig, resolveEngineConfig, ResolvedEngineConfig:针对固定步长计时、最大帧增量、时间尺度和可选的自动启动行为的有效运行时配置。
  • EngineLoop, FrameContext使用的确定性框架循环 Engine 手动和requestanimationframe支持的执行。
  • FixedStepAccumulator:固定步长蓄能器,具有最大步长箝位,用于确定性仿真相位。
  • Scheduler, SystemPhase:显式有序的阶段调度程序,具有依赖性验证、重复拒绝、周期检测和跨阶段依赖性拒绝。
  • TaskQueue:在引擎任务阶段刷新异步安全队列。
  • EventBus:引擎生命周期、框架和错误信号使用的类型化事件发射器。
  • Diagnostics:结构化度量/计数器快照支持。
  • Logger:有作用域的运行时日志抽象。
  • DisposableStack, ResourceScope确定性后进先出清理原语。
  • VersionedSchema, MigrationRegistry, SaveSlot:独立于浏览器的模式验证,保存数据迁移,保存槽元数据/数据快照。
  • ValidationError, LifecycleError为无效的配置、图形和生命周期操作键入错误类。

生命周期的合同

一个 Engine 开始于 created. 插件只能在这种状态下注册。调用 init() 转换通过 initializing 成 initialized、调用插件 init 按注册顺序排列的处理程序。如果任何插件初始化失败,已经初始化的插件处理器将以相反的顺序运行,引擎将转换为 failed.

调用 start() 仅从 initialized 或者 stopped;它启动配置好的循环,并转换到 running. 调用 stop() 从 running 停止循环并过渡到 stopped. 调用 step(delta) 从 created 初始化引擎,然后执行一个确定性框架 initialized, running,或者 stopped.

每一帧执行阶段的顺序如下:

  1. Platform
  2. Tasks
  3. 排队 TaskQueue 工作
  4. Fixed,每累积固定步一次
  5. Update
  6. Scene
  7. Render
  8. Present
  9. Cleanup

调用 dispose() 是等幂的。如果引擎正在运行,它首先停止,然后处置插件资源和引擎拥有的 ResourceScope 条目、清除事件和转换到 disposed. 处理错误报告为 AggregateError.

验证

生命周期,调度器,固定步骤,插件回滚,确定性手动步进和帧诊断包括:

  • tests/unit/core/scheduler-engine.test.ts
  • tests/unit/core/config-time.test.ts
  • tests/unit/core/events-disposal-diagnostics.test.ts
  • tests/unit/core/versioned-serialization.test.ts
  • tests/integration/engine-loop.test.ts
  • tests/browser/core-raf-loop.spec.ts

包含公共导出和导入边界 pnpm verify:exports, pnpm verify:imports, pnpm verify:boundaries.

版本与发布记录

@aura3d/core 共发布 48 个版本,首次发布于 2026/06/06;过去 12 个月发布了 48 个版本。

版本发布日期距今
4.7.0latest2026/10/312 天前
4.6.22026/10/304 天前
4.6.12026/10/304 天前
4.6.02026/10/304 天前
4.5.02026/10/295 天前
4.3.72026/10/286 天前

关于 @aura3d/core 的常见问题

@aura3d/core 是什么?

Aura3D的引擎生命周期、调度、确定性时间步进、诊断、事件、日志、任务队列和一次性资源范围。

如何安装 @aura3d/core?

在项目目录运行 npm install @aura3d/core,或使用 pnpm add / yarn add / bun add。

@aura3d/core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aura3d/core 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aura3d/core 可以商用吗?

@aura3d/core 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aura3d/core 还在维护吗?

最新版本 4.7.0 发布于 2026/10/31(2 天前);至今共发布 48 个版本,其中过去 12 个月发布了 48 个;首次发布于 2026/06/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。