Skip to content
Fungi

Frame-aware observation for riders

Read an actor's world position and position relative to its frame.

When an Agent observes a rider on a moving frame, the actor includes frame and local as well as its current world-cell at. Use at to reason about where the rider is in the world; use local to reason about where it sits on the vehicle or platform. The frame ID names the supporting entity.

An Agent can inspect the observed actor without confusing those coordinates:

TS
type RiderObservation = {
id: string;
at: { x: number; z: number };
frame?: string;
local?: { x: number; y: number; z: number; facing: number };
};
function riderReport(actor: RiderObservation): string {
if (!actor.frame || !actor.local) return `${actor.id} is not riding a frame`;
return `${actor.id} rides ${actor.frame} at local (${actor.local.x}, ${actor.local.z}); world cell (${actor.at.x}, ${actor.at.z})`;
}

For example, when a raft moves, at changes with it while frame and the rider’s relative local position identify the same place aboard the raft. This is observation data; game rules still own movement and boarding.

TERMINAL
vishnu check && vishnu test && vishnu build