five-on-it / apps/client/src/renderer/companions
apps/client/src/renderer/companions
The people's companions (models/companions.glb, made by assets/blender/models/companions.py): the bin cart a street sweeper pushes before it. It is the client's alone: the simulation knows the person (its role, @foi/sim's pedestrians), never the cart. Each is a clone of its model (ActorModels.spawn) under a node of its own that the remotes place every frame beside their person (Companions.place); a companion not placed in a frame is hidden, and let go with its person (Companions.release).
A dog walker's dog is no companion: it is an NPC of its own that the simulation runs (@foi/sim's dogs.ts), drawn where the server has it (dog-view.ts, remotes.ts).