COB-exact: timeline 1:1 from ARMSILO.COB (activatescr/deactivatescr, disassembled with _cob_dis.py; the outer scripts are cross-checked against the shipped ARMSILO.BOS). The launch itself (FirePrimary hides the missile) and the engine-driven RestoreAfterDelay/SetMaxReloadTime close are not part of this loop.
Animation

PNG frames

Frame 0 / 2250.00 s
COB timeline (ARMSILO.COB)
- 0.00β0.40 s β closed rest pose (3DO zero point = the COB
move-now/turn-nowblock) - 0.40β2.30 s β
activatescrstage 1: door1 z β β89.55Β°, door2 z β +90Β° (lids swing open around their outer hinges) - 2.30β4.25 s β stage 2: door1/door2 y β β6.1 elmo (lids drop clear)
- 4.25β6.22 s β stage 3: plate y β +8.0 elmo (platform, arm and missile rise together β the missile is a child of
arm, which is a child ofplate) - 6.22β8.31 s β stage 4: arm x β β90Β° (the missile erects to vertical)
- 9.51β11.41 s β
deactivatescrstage 1: arm x β 0 (missile lowers) β the compiled close order, not a reversed activate - 11.41β13.37 s β stage 2: plate y β 0 (platform descends)
- 13.37β15.34 s β stage 3: door1/door2 y β 0 (lids rise)
- 15.34β17.42 s β stage 4: door1/door2 z β 0 (lids swing shut)
Every stage duration equals its COB sleep exactly (1900/1950/1970/1976 ms open, 1900/1960/1968/1972 ms close). deactivatescr begins with a move-now/turn-now snap block that re-asserts the open pose β verified to be a no-op on the values activatescr ends at.