Skip to content

Morphology-driven VoxelFrame renderer + agency overlay #65

@wow-miley

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).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions