Follow
familiar.follow@2 is the Pattern that wakes the body, locks a subject, traces a path through
physical space, and settles what happened. It may transition into speaking mode — mic and camera
open only under separate capture authority, the Lich may speak through an admitted Avatar/Echo
path — and return to following when the conversation ends.
Admission
Admission pins one exact FamiliarBody@2 revision, subject designation, path constraints, and
stop conditions. A missing required body capability (camera for visual lock, GPS for outdoor
navigation) refuses the mission before the body moves.
| Field | What it binds |
|---|---|
| Body reference | exact immutable FamiliarBody@2 revision with confirmed capability snapshot |
| Subject designation | one explicit lock method with fallback chain |
| Follow envelope | target distance (min/max), altitude floor/ceiling (drones), speed ceiling, terrain mode |
| Obstacle avoidance | stop, reroute, climb, or refuse per obstacle class |
| Signal-loss policy | hover-and-wait duration, land-in-place, return-to-home waypoint, or freeze |
| Speaking mode | activation trigger, mic gain, camera resolution, speaker volume, deactivation trigger |
| Budgets | max duration, max distance, battery floor for continuation vs. settlement |
| Stop conditions | subject lost beyond policy, geofence breach, battery critical, manual override, emergency stop |
| Optional Avatar binding | exact ProjectionBinding@1 for Lich presentation through body speaker and display |
Subject designation
The body must know what to follow. The designation is explicit, attributable, and pinned at admission. "Follow whoever is nearby" is not an admissible designation.
| Method | How it works | Failure mode |
|---|---|---|
| BLE / UWB beacon | body locks signal strength + angle-of-arrival; subject carries a tag | signal lost in RF-noisy environments; tag battery death |
| Visual signature | AprilTag, ArUco marker, or known face embedding; body tracks with RGB camera | occlusion, lighting change, subject leaves frame |
| GPS tag | subject carries GPS broadcaster; body navigates to reported coordinates | GPS drift, urban canyon, indoor loss |
| Thermal profile | body locks heat signature with thermal camera | ambient temperature crossover, multi-person scenes |
| Visual fallback | color-blob tracker on a bright vest, or ML person-follower | false positives on similar colors/shapes |
A fallback chain is admissible: "lock BLE beacon, fall back to visual signature on AprilTag, fall
back to color-blob on orange vest." Each fallback transition records a subject_lock_degraded
event. When the chain is exhausted, the mission records subject_lost and executes signal-loss
policy.
Subject designation never proves identity, consent, attention, or relationship. A visual lock on a face does not mean the person agreed to be followed.
Path-tracing loop
The body-local controller runs the fast safety and motion loop. Familiar owns the slower semantic mission steps, waypoint intent, observation references, and receipts:
- Acquire — read sensor inputs, compute subject position relative to body, record lock quality
- Plan — compute path to maintain target distance envelope, avoid known obstacles, respect terrain constraints and geofence
- Move — issue waypoint to controller; controller handles motor actuation and local obstacle avoidance; Familiar records waypoint receipt
- Observe — re-acquire subject, validate lock quality, record any obstacle or deviation event
- Adjust — correct path if subject moved, lock degraded, or obstacle appeared
- Check — evaluate stop conditions, budgets, speaking-mode triggers
acquire → plan → move → observe → adjust → check → acquire …
The local controller runs at its own pinned and measured rate; LychD promises no universal control frequency. Between semantic waypoint updates, the controller maintains or rejects the last admitted command and enforces local obstacle avoidance autonomously.
Distance, altitude, and speed envelopes
The follow envelope keeps the body near enough to observe without crowding or endangering the subject. The values below illustrate one candidate profile; they are not defaults or safety guidance, and admission must replace them with validated body- and jurisdiction-specific limits.
| Parameter | Drone | Rover | Legged |
|---|---|---|---|
| Min distance | 2 m (propeller safety) | 1 m | 0.5 m |
| Max distance | 15 m (visual lock range) | 10 m | 5 m |
| Altitude floor | 1.5 m above ground | — | — |
| Altitude ceiling | 15 m or regulatory limit | — | — |
| Max speed | 8 m/s | 3 m/s | 1.5 m/s |
| Terrain mode | outdoor-only (default), open-indoor (warehouse) | paved, grass, gravel, stairs-capable (rover-dependent) | indoor, stairs, uneven |
Envelope breaches record a deviation event. A sustained breach — subject sprinting beyond max speed, drone forced below altitude floor by terrain — may trigger a stop condition.
Obstacle avoidance
The body may encounter obstacles the subject passed but the body cannot. The avoidance mode is declared per obstacle class at admission.
| Obstacle class | Stop | Reroute | Climb (drone) | Refuse mission |
|---|---|---|---|---|
| Static object (tree, wall, furniture) | hover/brake, record, wait for subject to return or path to clear | plan alternate path around object, record deviation | ascend over object, record deviation | mission requires clear path; obstacle = refused |
| Dynamic object (person, animal, vehicle) | hover/brake, record, wait | reroute with wider margin | — | — |
| Narrow passage (doorway, gap) | stop, record width, wait for operator decision | — | — | body wider than passage = refused |
| Water (rover) | stop at edge, record | reroute around | — | water crossing not in terrain allowlist = refused |
| Stairs (rover without stairs capability) | stop at base, record | — | — | stairs in path + no stairs capability = refused |
The controller enforces obstacle avoidance at hardware level between waypoint updates. Familiar records the event and the controller's response; it does not micro-manage the avoidance maneuver.
Signal loss
The admitted control connection between the body's attachment and LychD may drop. On a remote Legion route this is Intercom between the Legionnaire and LychD; a local or mobile attachment names its equivalent bounded link. The body must decide what to do without a round-trip.
| Policy | Behaviour | Recovery |
|---|---|---|
| Hover-and-wait (drone) | hover at current position for N seconds; if signal returns, resume mission; if timeout, execute land-in-place | the attachment owner reconnects, reads the body journal, then requests resume or settlement |
| Land-in-place (drone) | descend vertically at current position, disarm motors, record landing receipt | body on ground, safe; manual retrieval |
| Return-to-home (drone) | ascend to safe altitude, navigate to pre-admitted home waypoint, land | body returns to known safe location |
| Brake-and-wait (rover/legged) | stop, hold position for N seconds; if signal returns, resume; if timeout, remain stopped | body stationary, safe; manual retrieval |
| Freeze (any) | immediate motor stop/brake, hold position indefinitely | safest option; requires manual intervention to resume |
The signal-loss policy is pinned at mission admission and enforced autonomously by the admitted
body controller. A Legionnaire carries that duty on a Legion-backed route; no Legion requirement
is implied for another attachment. A late signal return after policy execution settles the
mission with signal_lost; it does not silently resume as though nothing happened.
Speaking mode
The body transitions from following to conversational presence. The Lich speaks through the body's speaker; the body's camera and microphone feed the Lich's senses.
Activation
A trigger begins the speaking session. The trigger is declared at mission admission.
| Trigger | How it works |
|---|---|
| Voice command | an admitted Echo Listener recognizes the exact activation phrase and emits a bounded activation request |
| Proximity | the admitted subject enters a declared close-distance threshold; proximity may invite interaction but cannot authorize capture by itself |
| Gesture | an exact admitted gesture may request interaction; a visual match still proves neither identity nor consent beyond that request |
| Explicit instruction | an authorized operator or application requests speaking mode through the admitted control channel |
Active session
- Body stabilizes — hover hold (drone), park (rover), stand (legged).
- Disclosure indicators activate before capture — camera/microphone light and, where appropriate, an audible announcement.
- A separately admitted camera epoch opens; Prism/Sight may return exact source-bound observations for Context or Avatar grounding.
- A separately admitted Echo capture window opens; any transcript retains its audio source, timing, provider, language assumptions, and uncertainty.
- An authorized Avatar voice profile may select presentation while Echo owns synthesis and speech playback chronology; the device reports the physical playback evidence.
- Familiar records a bounded speaking-mode window referencing the exact Companion controls when
present and the separately owned Prism/Echo epochs, transcript, disclosure, and delivery facts.
It is an aggregate mission reference, not a second
FamiliarSpeakingSessionspeech chronology.
Deactivation
| Trigger | Behaviour |
|---|---|
| Voice command | "Goodbye" / "Resume follow" — Lich or subject ends session |
| Subject departure | subject leaves proximity threshold beyond grace period |
| Explicit instruction | Lich ends speaking mode through the admitted control link |
| Budget exhaustion | mission duration or speaking duration budget reached |
| Stop condition | any mission stop condition also ends speaking mode; session closes before mission settlement |
Deactivation closes that bounded speaking-mode window, stops camera and mic streams, deactivates disclosure indicators, and returns the body to the follow loop. If the follow mission itself is complete, deactivation settles the mission.
Terminal settlement
Every follow mission ends with one attributed judgment. A partial mission names exactly what was completed and what stopped it.
| Settlement | Meaning |
|---|---|
completed |
subject reached declared destination, or mission duration budget expired with subject still locked; all segments have waypoint receipts |
partial |
some segments completed, some refused or interrupted; policy permits the exact settled subset; every absent or interrupted segment is named |
subject_lost |
subject designation chain exhausted and signal-loss policy executed; last known position, last lock quality, and loss event recorded |
emergency_stopped |
autonomous or manual emergency stop triggered; trigger source, body state at stop, and post-stop telemetry recorded |
signal_lost |
admitted control link lost and signal-loss policy executed to completion; body journal available for later reconciliation |
battery_depleted |
battery reached declared floor; body executed low-battery behaviour (land/stop) before power loss; final position and remaining charge recorded |
refused |
mission admission failed (missing capability, infeasible path, geofence conflict, subject designation invalid) before movement began |
unresolved |
a required outcome remains unknown or cannot be reconciled without guessing; mission evidence is incomplete but honestly recorded |
Representative journey
- Magus admits one
FamiliarBody@2— a 350 mm quadcopter with GPS, optical flow, forward RGB camera, downward rangefinder, mic, speaker. Safety envelope: max altitude 15 m, min altitude 1.5 m, geofence = property boundary, emergency stop = kill switch + autonomous low-battery land. - Magus designates subject: BLE beacon in pocket, visual fallback to color-blob on bright vest. Signal-loss policy: hover 10 s, then land-in-place.
- Magus opens
familiar.follow@2mission: follow at 3 m distance, 3 m altitude, outdoor terrain, speaking mode on voice command "Hey Lich." - Drone lifts off, locks BLE beacon, begins path-tracing loop.
- Drone follows Magus through garden — records waypoints, avoids tree branch (reroute event), re-acquires subject after brief visual occlusion (lock-degraded-then-reacquired event).
- Magus stops at workbench, faces drone, says "Hey Lich, what do you think of these seedlings?"
- The admitted voice-command event requests speaking mode. The drone stabilizes, activates its disclosure indicators, then opens bounded Prism/Sight and Echo capture windows. Their attributed observations and transcript make the seedlings and question available to the Invocation.
- Lich responds through drone speaker: "The tomatoes are crowded — give them each a bigger pot. The basil is ready to harvest." The speaking-mode window closes with references to the exact Prism/Echo epochs, transcript, disclosure, and delivery facts.
- Magus says "Thanks, resume follow." Speaking mode deactivates. Drone re-acquires beacon, resumes follow loop.
- Battery reaches 25% floor. Drone records
battery_lowevent, descends to land at current position, settles mission aspartialwith battery-depleted reason. Magus retrieves drone.
Return to Familiar for the full contract and boundaries.