Python API¶
The NovaPhy Python package is imported as:
The partner-facing public API is the set of names exported from
novaphy.__all__ plus solver classes and configuration objects under
novaphy.solvers. Solver classes intentionally live in the novaphy.solvers
namespace instead of the top level, mirroring newton.solvers.
This reference is organized by topic in the same shape as
newton's API Reference.
Where Newton uses real subpackages (for example newton.geometry,
newton.math), NovaPhy still exposes many of those symbols at the top level;
the category pages below group them by topic so that the documentation reads
as a 1-to-1 mirror. Real Python subpackages such as novaphy.solvers,
novaphy.ik, novaphy.sensors, and novaphy.actuators are
called out explicitly.
Index¶
| Category | Description |
|---|---|
| novaphy | Top-level scene, runtime buffers, joints, and core types. |
| novaphy.actuators | Actuator framework: PD controller and effort writer. |
| novaphy.geometry | Collision shapes, broadphase, narrowphase, AABB, and contact data. |
| novaphy.ik | Inverse-kinematics solvers, Jacobian helpers, end-effector queries. |
| novaphy.io | URDF / USD / MJCF importers, scene builder, exporter, recorder. |
| novaphy.math | Spatial algebra, axis conversion, and angle helpers. |
| novaphy.sensors | Sensor framework: IMU, contact, frame transform readers. |
| novaphy.solvers | Solver classes, configuration objects, and solver metadata. |
| novaphy.utils | Profiling, device descriptors, version, scaffold helpers. |
Quick Start¶
For a guided walkthrough including setup, public API surface, the runtime contract, integration notes, and runnable demos, see the Quick Start guide.
Compatibility with newton¶
NovaPhy aligns with Newton's solver-primary architecture:
solver.step(state_in, state_out, control, contacts, dt)is the canonical forward-dynamics entry point on everySolverBasesubclass.Modelis immutable, runtime buffers (SimState,Control,Contacts) are caller-owned. Allocate state/control viamodel.state()/model.control(), and allocate collision-sized contact buffers viaCollisionPipeline(model).contacts().- Solver classes live exclusively in
novaphy.solvers.*; there is nonovaphy.SolverXXXtop-level shortcut.
NovaPhy currently differs from Newton in the following ways (only the major items are listed; see each category page for symbol-level differences):
- Some Newton subpackages (
newton.geometry,newton.math,newton.utils,newton.usd,newton.selection,newton.viewer) are not yet split out in NovaPhy; their symbols live at the top level. - Newton math helpers built around Warp (
safe_div,smooth_min/max,quat_*,vec_*,transform_twist/wrench) are not provided. - NovaPhy's implemented IK path is function-style (
solve_ik,solve_ik_pose, Jacobian helpers, end-effector queries). The class-style IK symbols (IKSolver,IKObjective, optimizer classes) are documented as scaffold placeholders until their full Newton-compatible layer lands. - VBD is exposed as
novaphy.solvers.SolverVBD, a Newton-alignedSolverBasesubclass. There is no top-levelnovaphy.VBDWorldcontainer. - NovaPhy adds fluids (
SolverPBF,SolverSPH), IPC (SolverIPC), and LBM (SolverLBM) backends not present upstream.