COB-exact: timeline 1:1 from ARMAP.COB (rev31.gp3, the 3.1 balance). six sequential open stages — doors flip and sink, plates rise, posts swing, nano arms extend — then the production hold with the pad spinning one full turn, then the compiled close. Two measured renderer notes: the ground clip sits at the model's min-y so the flat flight-field apron (base geometry below y=0) stays visible like in game; and the two post y-turns are sign-flipped in render space (variant-grid measured) so both nano lasers produce onto the spinning hexagon exactly as in game. The front lamp is animated too: texture flashing02 (ARMBLDG.GAF) carries the brightness wave off→1→2→3→2→1 at ~400 ms per step (engine-side in game, rendered here from the real GAF frames).
Animation

PNG frames

COB timeline (ARMAP.COB)
- 0.00–0.40 s — rest pose (Create:
hide radar— the dish is never shown in this COB, unlike ARMAAP whose radar spins forever; beam1/beam2 are empty engine anchors). - 0.40–4.60 s — RequestState 0 (Activate): six sequential stages, each sleep equals its motion — doors flip open (door1 x −88.6°, door2 z +90° at ~130°/s, 683 ms), doors sink 8.35/5.3 elmo (689), plates rise 7.75/9.6 elmo (691), post1 swings 89.5° (691), nano arms extend (694), posts settle (755).
- 4.60–16.60 s — production hold:
StartBuildingspins the pad at 30°/s — exactly one full revolution over the engine-flag pulses (sleep 1500loop). The pad is an irregular hexagon, so a whole turn is the shortest hold that closes the loop seam. - 16.60–20.81 s — RequestState 1 (Deactivate): the compiled close SNAPS every piece to the open pose first (interrupt safety), then folds back in reverse stage order — posts, nano arms, plates, doors (683/689/691/691/694/755 ms).
SmokeUnit (damage smoke) and Killed (death explosions) are engine hooks — not part of this loop. QueryNanoPiece alternates the two nano emitters.