Skip to main content

Module plugins

Module plugins 

Source
Expand description

Built-in animation, constraint, and physics plugins. Built-in runtime plugins: animation, constraints, simple physics, and skeletal animation.

All plugins implement crate::RuntimePlugin and are registered on crate::ViewportRuntime via crate::ViewportRuntime::with_plugin.

§Layout convention

New plugins live in their own subdirectory under plugins/, not as a single file. Use the [skeleton_plugin] module as the template:

plugins/
  my_plugin/
    mod.rs        // re-exports the public surface
    plugin.rs     // the RuntimePlugin impl
    <feature>.rs  // substrate types, math, helpers, internal state

Rationale: features grow. A plugin that starts as a single file invariably accumulates substrate types, helper modules, and tests. Starting in a subdirectory avoids a later rename-and-rewire that breaks use paths across the codebase. It also keeps each plugin’s surface area discoverable in one place rather than scattered between runtime/<feature>.rs and runtime/plugins/<feature>.rs.

All plugins follow the subdirectory layout. Use the [skeleton_plugin] module as the template for new plugins.

Re-exports§

pub use animation::AnimationPlugin;
pub use animation::AnimationTrack;
pub use animation::Keyframe;
pub use constraint::Constraint;
pub use constraint::ConstraintPlugin;
pub use physics_lite::PhysicsBody;
pub use physics_lite::PhysicsLitePlugin;
pub use skeleton_plugin::AnimationClip;
pub use skeleton_plugin::Channel;
pub use skeleton_plugin::ClipPlayerPlugin;
pub use skeleton_plugin::Interpolation;
pub use skeleton_plugin::Joint;
pub use skeleton_plugin::JointMatrices;
pub use skeleton_plugin::MAX_JOINTS;
pub use skeleton_plugin::Pose;
pub use skeleton_plugin::Sampler;
pub use skeleton_plugin::Skeleton;
pub use skeleton_plugin::SkeletonPlugin;
pub use skeleton_plugin::SkinnedActor;
pub use skeleton_plugin::SkinnedActorPart;
pub use skeleton_plugin::SkinnedActorPlugin;
pub use skeleton_plugin::SkinningPath;
pub use skeleton_plugin::Track;
pub use skeleton_plugin::TrackValue;
pub use skeleton_plugin::TrackValues;
pub use skeleton_plugin::apply_skin;

Modules§

animation
AnimationPlugin: keyframed and procedural transform animation.
constraint
ConstraintPlugin: spring-to-target, damping, and bounds constraints.
physics_lite
PhysicsLitePlugin: simple velocity integration, gravity, and bounded collision.
skeleton_plugin
Skeletal animation: substrate types, animation clips, and built-in plugins.