# featherstone Documentation
## User Guides
- **[Getting Started](getting-started.md)** — Build your first robot, set state, simulate
- **[Algorithms Guide](algorithms.md)** — ABA, RNEA, CRBA explained with code
- **[Contact Dynamics](contacts.md)** — Ground contacts, LCP solver, smooth contacts
- **[Integration Methods](integration.md)** — Choosing the right integrator, split-phase API
- **[URDF Loading](urdf.md)** — Load robots from URDF files
- **[API Patterns](api-patterns.md)** — Common recipes: serial chains, floating base, control, FK
## API Reference
Full rustdoc: [docs.rs/featherstone](https://docs.rs/featherstone)
## Quick Reference
### Core types
- `ArticulatedBody` — kinematic tree of rigid bodies
- `GenJoint` — joint types (Revolute, Prismatic, Spherical, Floating, Planar, Fixed)
- `SpatialInertia` — 6x6 spatial inertia matrix
- `SpatialTransform` — coordinate frame transform
### Algorithms
- `aba_forward_dynamics(&mut body)` — O(n) forward dynamics
- `rnea_inverse_dynamics(&body)` — O(n) inverse dynamics
- `crba_mass_matrix(&body)` — mass matrix computation
- `gravity_compensation(&body)` — static torques
- `forward_kinematics(&body)` — world-frame transforms
### Simulation
- `step(&mut body, &config)` — one timestep
- `IntegrationMethod::SemiImplicitEuler` — default, symplectic
- `IntegrationMethod::RK4` — 4th-order, smooth dynamics
### Contacts
- `ground_plane_contacts(&body, height, normal, friction, restitution)` — detect contacts
- `solve_contact_lcp(&body, &constraints, dt, &config)` — rigid contact impulses
- `smooth_contact_forces(&body, &constraints, &config)` — differentiable contacts