PhysX Atlas#
Learning home · PhysX contents
Course text is primarily Chinese, with English terminology and summaries. The original content is preserved.
Understand PhysX through native APIs, physics concepts and versioned source code.
Sim Atlas home · 中文 · Introductory guide · Curriculum · Source map · Versions · Roadmap · Project tracker
Part of Sim Atlas, an independent community learning series with two complete planned tracks: applications (modeling, control, robotics, sensing and data) and principles/source (dynamics, contact, solvers, integration and extensions).
The initial guide and pinned source map are available in Chinese.
E1: Modeling, frames, state and time now covers native object ownership, collision assets/cooking, units and quaternion conventions, actor/shape/COM frames, inertia, articulation cache indexing and reset, and the simulate/fetchResults boundary. The native C++ reading example and validation record distinguish source/compile-only checks from runtime validation. E1 delivers A1/A2 and the relevant B0/B4 foundations; the CPU contact solver/integration analysis is now covered by E3.
E2: Control, robotics and task interfaces covers force/impulse modes, implicit articulation drives and motor envelopes, D6 distinctions, robot asset/DOF mapping, FK and tool-point Jacobians, application-owned IK, and task/control scheduling. Its native C++ example is compile-only checked; E2 validation lists the source and execution boundaries. A3/A5/A7 source lessons are delivered; host importer execution and robot runtime behavior remain unvalidated. The rest of the course is in development.
E3: Contact, solvers and force observations traces native filtering and offsets, rigid/compliant material combination, constraint preparation, CPU PGS/TGS iteration and integration, and normal versus friction-anchor impulse readback. It explains the missing CCD friction stream and pure torsional-row contribution, so reported point impulses are not presented as a complete contact wrench. The C++ fragment is syntax/type checked only; E3 validation records scope and limitations. A4 and B1–B5 source lessons are delivered, with GPU implementation boundaries covered separately in E6 and runtime evidence still unvalidated.
E4: Sensing, scene queries and debug visualization covers native raycast/sweep/overlap filtering, hit validity and overflow, query updates and sampling boundaries, incoming joint forces and acceleration validity, and the distinct responsibilities of debug primitives, PVD/OmniPVD and host RGB/depth/segmentation pipelines. The C++ ray-query fragment is syntax/type checked only; E4 validation records the fixed source and unexecuted scope. A6 is delivered as a source lesson; sensor, renderer, GPU and headless runtime behavior remain unvalidated.
E5: Batching, learning interfaces and data covers independent scenes versus filtered groups in one scene, CPU task scheduling, GPU/Direct GPU ownership and events, padded articulation layouts, reset and randomization, host-owned RL transitions, dataset records, object serialization and replay limits. Its native C++ fragments are syntax/type checked only; E5 validation records evidence. A8/A9 and the B6 scheduling/data/extension interfaces are delivered as source lessons; detailed GPU paths and custom engine extensions are covered separately by E6. No learning environment, training, throughput or replay has been run.
E6: Native extensions and capability boundaries explains custom geometry/constraint/callback contracts, a complete CPU DistanceJoint path from configuration through solver rows to force readback, public GPU source and CPU fallback, FEM volume/surface and PBD particle data/numerical paths, and the distinction between native coupling, host services and end-to-end differentiation. The original row-prep fragment passes syntax/type checks only; it is not a complete plugin and was not executed. E6 validation records source identity, checks and limits. B6/B7 source lessons are delivered; A0 installation and the E7 course-wide audit remain pending. No SDK build, CUDA compilation/JIT or native runtime has been performed.
This phase prioritizes understanding engine subsystems. Minimal snippets support explanation and are explicitly marked when unexecuted. No new simulation campaigns, benchmarks, training or scoring are included; later experimental material will reuse DexLab with its original version and workload boundaries.