newton-atlas 固定版本源码入口#
Learning home · Newton Physics contents
Course text is primarily Chinese, with English terminology and summaries. The original content is preserved.
阅读基线:713fecdc41caf0c9d726f5c016939f36e66e3dff。以下入口已核对官方 Git 树与文件内容身份;不是全仓审查或运行验收记录。
本阶段先理解引擎架构、建模、步进、控制、接触/求解、传感器/渲染、性能与扩展。独立实验、基准、训练和评分暂不开展,后续复用 DexLab。
源码文件 |
阅读目的 |
|---|---|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
区分接触几何、接触律与数值近似 |
|
核对对象职责、数据布局、参数与版本约定 |
|
识别算法、输入状态、配置与限制 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
核对对象职责、数据布局、参数与版本约定 |
|
识别算法、输入状态、配置与限制 |
|
识别算法、输入状态、配置与限制 |
|
理解官方最小使用顺序;本轮不执行 |
E1 精读入口#
正文的行号链接指向下面的固定文件,身份见 sources.json。重点是实现分支,而不仅是 docstring。
文件 |
本章具体核对内容 |
|---|---|
关节父/子变换、COM 速度换点、eval_fk/ik 的输入输出边界 |
|
body flag 与不同 joint 的坐标/速度维度 |
|
半隐式预测、局部惯量、kinematic 传递、base reset no-op |
|
visual/collision 分离,显式质量、惯量与 scale |
|
角度/四元数解析,显式 inertial 与缩放 |
|
非单位 metadata 的不同路径及 legacy 刚体限制 |
|
box 质量/惯量、旋转与平行轴定理 |
|
Newton/Warp 空间量排列适配、换点和换系 |
|
以实际 COM 力臂与叉积核对 conventions 的符号冲突 |
E1 还精读上表已有的 builder.py(构建/导入/finalize)、model.py(状态/控制分配)、state.py(字段/assign)、control.py(FREE/DISTANCE 力约定)、XPBD step 与 MuJoCo reset。上游 conventions 存在本章记录的两处符号不一致,不能仅凭文件身份哈希认为其中所有公式都正确。
E2 精读入口#
控制、机器人与任务专题从公开导出、参数、执行分支追到输出数组。以下新增文件与 E1 的 builder/control/XPBD/MuJoCo 入口共同构成 E2 来源;仅核对所引关键分支,不宣称全文件全部功能审查。
文件 |
本章核对目的 |
|---|---|
原生概念、公开使用流程与当前版本限制 |
|
原生概念、公开使用流程与当前版本限制 |
|
原生概念、公开使用流程与当前版本限制 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
Drive、Delay、Clamping、显式/隐式 effort、状态和输出生命周期 |
|
模型型端口、工具 Jacobian 换点、DLS/阻抗的实际输出与能力边界 |
|
模型型端口、工具 Jacobian 换点、DLS/阻抗的实际输出与能力边界 |
|
模型型端口、工具 Jacobian 换点、DLS/阻抗的实际输出与能力边界 |
|
模型型端口、工具 Jacobian 换点、DLS/阻抗的实际输出与能力边界 |
|
模型型端口、工具 Jacobian 换点、DLS/阻抗的实际输出与能力边界 |
|
关节 compact 映射、标签、1-DOF 限制与唯一工具 site |
|
关节 compact 映射、标签、1-DOF 限制与唯一工具 site |
|
目标、residual、候选/采样、LM 与 scalar 限位的实现 |
|
目标、residual、候选/采样、LM 与 scalar 限位的实现 |
|
目标、residual、候选/采样、LM 与 scalar 限位的实现 |
|
目标/广义力的具体消费者、内置驱动与限位路径 |
|
目标/广义力的具体消费者、内置驱动与限位路径 |
|
目标/广义力的具体消费者、内置驱动与限位路径 |
|
目标/广义力的具体消费者、内置驱动与限位路径 |
|
目标/广义力的具体消费者、内置驱动与限位路径 |
|
公开导出与实验性 API 边界,防止把内部 helper 当公共入口 |
|
公开导出与实验性 API 边界,防止把内部 helper 当公共入口 |
|
newton/examples/controllers/example_controller_differential_ik.py |
核对官方示例是运动学展示还是物理执行;不运行、不复制资产 |
核对官方示例是运动学展示还是物理执行;不运行、不复制资产 |
|
公开导出与实验性 API 边界,防止把内部 helper 当公共入口 |
E2 特别区分:eval_ik 状态重建与 newton.ik.IKSolver 目标优化;controller 输出接 State 的展示与接 Control 的动力学链;模型 effort_limit、单 actuator clamp 和任意外部力输入的不同作用范围。
E3:接触生成到力读回#
专题正文沿以下入口区分几何、材料、积分、求解和观测。链接都指向同一个 Newton 固定提交;可运行行为仍未验收。
入口 |
本章实际核对 |
|---|---|
计数/AABB、过滤/broad phase、writer/narrow phase、matching/sort;容量不能当活跃数 |
|
body-local support 点、world 法线、margin、可选 spatial force 契约 |
|
world 与带正负号的 collision group,和位掩码区分 |
|
压力面积积分、等效刚度和 reduction 的有限表示 |
|
临时 joint force、预测积分、位置/速度阶段 |
|
算术材料组合、增量摩擦、COM 力臂、实际 count weighting |
|
固定内外迭代、首轮有界负增量与后续非负约束 |
|
等效 impulse/h;组成和 lifecycle 限制 |
|
SemiImplicit/Featherstone 的均值、覆盖、法向/摩擦与 body force 写入 |
|
H、armature、Cholesky、缓存更新周期 |
|
priority/solmix/max friction 与 solref;非统一平均 |
|
compliant ALM/legacy 与 body1 力,不冒充通用 Contacts.force |
|
原生 residual 与单位、预算停止/收敛、warm start |
|
方向与 COM 参考点转换 |
|
只消费线性力;聚合、friction 分解及加权中点 |
|
几何重建与冻结接触集合导数边界,核实公开 API |
外部依赖单列#
为核对 Newton adapter 实际调用,本章读取 独立 MuJoCo-Warp 依赖清单。官方固定 commit 与 Newton uv.lock 锁定的 sdist 逐文件对照通过;它没有混入只代表 Newton 的 sources.json。
contact_force_fn:contact wrench 的 world 旋转,没有 COM 换点;与 Newton adapter 合看才确定固定组合的限制。
后端停止规则:scaled improvement/gradient 与 iteration 上限,不能译成物理穿透容差。
积分器分支:Euler damping、RK4、多种速度隐式矩阵和状态推进;积分器与约束优化器分别选择。
专题正文和 E3 验收保留源码发现与未决项;源码身份核对不等于整文件或全部后端通过物理测试。
E4:观测 producer、相机几何与显示后端#
专题正文将申请存储、producer、更新时间和 consumer 分开;没有 native import、渲染或物理执行。以下为固定实现的阅读入口,具体行号见正文。
入口 |
本章实际核对 |
|---|---|
四类 sensor;不依概念页的计数字样推断额外能力 |
|
shape/site 配对、广播、world 相对变换、只读 body_q |
|
body_qdd 申请与消费者、COM/site 加速度、重力、输出轴 |
|
RNE 申请/禁用检查、step/FK/扩展字段转换阶段 |
|
flat sensing rows、per-world counterpart 列、可选 State 与缓存清理 |
|
VISIBLE 默认 mask、build/refit、model 共享缓存 |
|
newton.intersect_ray 的 world/global roots、距离/normal/miss |
|
七类通道、输入输出维度、sync_transforms 范围 |
|
pinhole/标定反解、坐标轴、像素中心、无效零射线 |
|
输出分配、原始图像与显示 RGBA 变换 |
|
是否存在几何、shape 校验、复用输出与实际 launch |
|
ray/forward depth、world normal、hit/miss 与禁用反传 |
|
ClearData、RenderConfig;另沿 raytrace.py 识别集合 ID |
|
begin/log/end 与显示布局;log_image 基类 no-op |
|
log_image override、最后 framebuffer RGB、host/GPU 读回 |
|
headless 仍建立隐藏图形上下文 |
|
OVRTX/OVStage 依赖和异步呈现上一帧 |
|
克隆直接 State 数组;不同于完整 solver checkpoint |
|
int(time*fps) 量化与 close 保存 |
|
Rerun/Viser/RTX/文件模式和上游验证边界 |
来源身份、静态检查、保留问题与下一阶段见 E4 验收。没有把图像尺寸、数组分配或窗口存在当作有效观测证明。
E5:world 隔离、学习时序与数据生命周期#
专题正文与静态例子串起实体布局、选择性重置、策略输入和保存/回放。
入口 |
本章实际核对 |
|---|---|
B+2 starts、global 前后段、复制对象生命周期、同构/异构边界 |
|
target quaternion、全量与局部 reset、namespace 与 graph 地址 |
|
权威状态、flags、后端历史和更新阶段;基类/XPBD 不是自动恢复初值 |
|
12+3n 观测、关节映射、外部 ONNX、capture 范围、物理/展示时间差异 |
|
顶层 State clone、Model 引用、playback 别名、缺失的 checkpoint/时间信息 |
|
归属/频率/namespace、合并时实体和 world 引用重映射 |
|
不重放任意 Python;CPU graph 的实验性与操作集合 |
|
host 读回、共享视图、同步与流、梯度所有权 |
|
seed/offset、局部 RNG 状态、跨 launch 重复;不是全系统随机种子 |
Warp 身份保存在独立清单,没有混入 Newton manifest;外部策略 runtime、Torch 和 Isaac Lab 的完整实现未在本章验收。详细保留项和检查见 E5 验收。
E6:材料、原生耦合与完整导数链#
专题正文和原创阻力例子以实际消费者区分共同 API 与具体算法;B7 串联前述 E1–E5 的字段到观测链。
入口 |
本章实际核对 |
|---|---|
基类 no-op/拒绝、reset、step、读回与碰撞调度 |
|
材料参数乘体积、偏量因子;与 VBD 比较 |
|
Lamé 变换、guard、cofactor 与单顶点 block Hessian |
|
输入位置原地修改;另追 PD matrix 和 PCG 固定预算 |
|
FEM 流变/粒子状态顺序、实际网格速度消费者;reset/隔离/graph 分支 |
|
残差缩放、检查粒度、host/graph 停止条件 |
|
bilateral direct solve 与着色 unilateral 迭代交替 |
|
configuration 半步、midpoint forward、更新 twist 后半步 |
|
ModelView、ownership、hooks、有效质量与重力责任 |
|
inner iterations 重解同一区间、反馈松弛 |
|
支持 BALL/FIXED/REVOLUTE,跳过 FREE/DISTANCE,拒绝其他类型 |
|
实际加权速度更新;dual 不冒称物理力 |
|
逆序 adjoint、loss 前提、禁用 backward 分支 |
|
前向覆写、梯度消费与 retain_grad 限制 |
Newton 来源进入 sources.json;两项 Warp 来源独立进入 E6 Warp 清单,与 E5 相同固定 commit。公式前提、源码缺项和静态检查见 E6 验收,没有以导数存储或例子语法通过代替 native/gradient 验证。