Skip to content

Morphology-driven VoxelFrame renderer + agency overlay #65

Description

@wow-miley

Context. Phosphor's renderer, made body-agnostic and turned into the agency display. Part of the [Ampere] Act 6 - Embodiment phase; depends on AMPERE's morphology + 2nd-order types.

Objective. MorphologyVoxelRenderer(morphology)VoxelFrames of the posed structure, color/intensity from a SignalField. Render the commanded Pose (ghost) and observed Observation (solid) together — their divergence is the agency display (the gap the MuJoCo sim makes real). Constructed from a morphology ⇒ renders a hand or an arm with no code change.

Changes (Phosphor — multiplatform; depends on ampere-core, NEVER MuJoCo)

class MorphologyVoxelRenderer(private val morphology: Morphology) {
    fun render(commanded: Pose, observed: Observation? = null, signal: SignalField? = null): VoxelFrame
}

Validation

Render the hand fixture posed by a canned trajectory; render the arm fixture with the same renderer (non-overfit twin); assert Spherical DOFs render orientation (not one angle); assert the commanded+observed overlay shows a visible gap when the two differ.

Out of scope

Lumos personality/atmosphere (Socket); EMS/servo; depth-mesh registration (a follow-up).

Scope ~3–5 pts · Model: Sonnet, medium (high for the segment-frame math).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions