Deployment timeline
Discrete event snapshots bridging the released stowed and deployed endpoint states. Dwell periods, motion interpolation spans, and short-event elision are now declared explicitly instead of implying an every-millisecond state history.
Design signature: 9f4357b4670ecd4cb3fb8b183d3717693fa64fcd781f3278fa0b0b8f6ecf985a
Render manifest: outputs/deployment_timeline/render_manifest.json · Sequence: outputs/deployment_timeline/sequence.json
Motion report · Sampled states JSON · Element histories JSON · Summary JSON · Event log CSV
Sampling coverage
Policy boundary_event_capture_under_0p5s elides sub-events shorter than 0.500 s and keeps them in the event log plus the nearest boundary sample.
Effective timestep coverage across the full deployment is 3.000 to 11.333 s.
| Interval | Kind | Time span (s) | Samples | Effective dt (s) | Interpolation |
|---|---|---|---|---|---|
| Hold the fully stowed launch stack while the pyro command propagates. | dwell | 0 - 5 | 2 | 5.000 | hold |
| Retract the launch-release actuators and unload the launch-only restraint path. | motion | 5 - 20 | 4 | 5.000 | piecewise_monotonic |
| Release the packed sunshield latch line and allow the first small layer separation. | motion | 20 - 35 | 3 | 7.500 | linear_with_terminal_state_change |
| De-energize the hold-down line and break the membrane stack into deployment travel. | motion | 35 - 44 | 4 | 3.000 | linear_with_boundary_release |
| Sample the long unfurl span with coarse event-driven interpolation rather than dense time marching. | motion | 44 - 180 | 13 | 11.333 | linear_monotonic |
| Carry the last deploy-and-capture approach with coarse samples while the radiator support carriage hits its stops, the leaves complete their hinge rotation, and the final latch event closes the thermal shell. | motion | 180 - 420 | 25 | 10.000 | linear_with_terminal_state_change |
Radiator Deployment Mechanism
Mechanism: radiator_side_dual_leaf_deployment
Stowed restraint: radiator_stow_latch_pair (dual_overcenter_launch_latch). Upper and lower over-center latch shoes clamp the folded radiator leaves against the support carriage so launch loads stay on positive mechanical stops until the release pullers clear the latch line.
Activation events: radiator_support_link_drive_release
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_stow_latch_upper | over_center_latch | 2 | radiator_mount_beam_upper | radiator_frame | |||
radiator_stow_latch_lower | over_center_latch | 2 | radiator_mount_beam_lower | radiator_frame |
Release hardware: radiator_stow_latch_release (dual_nonexplosive_pin_puller). Dual non-explosive pin pullers withdraw the upper and lower latch shoes together so the stowed preload hands off cleanly into the spring-driven carriage sweep instead of relying on an unexplained free release.
Activation events: radiator_support_link_drive_release
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_release_puller_upper | nonexplosive_pin_puller | 1 | radiator_mount_beam_upper | radiator_frame | |||
radiator_release_puller_lower | nonexplosive_pin_puller | 1 | radiator_mount_beam_lower | radiator_frame |
Driver: radiator_support_link_drive using radiator_mount x 4. Four support links and paired extension springs sweep the radiator package away from the bus-side outrigger once the stow-latch release line is free, so the carriage motion comes from stored spring energy rather than a placeholder interpolation.
Driver activation events: radiator_support_link_drive_release
Driver-controlled state fields: radiator_drive_fraction, radiator_support_carriage_fraction, radiator_leaf_rotation_fraction, radiator_closeout_extension_fraction
Stored-energy drive: radiator_link_extension_springs (paired_extension_springs). Paired extension springs on the upper and lower support links provide the breakout torque and carriage sweep energy until the leaf hinges finish the last portion of the opening motion.
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_link_spring_port | extension_spring | 2 | radiator_mount_beam_upper, radiator_mount_beam_lower | radiator_frame | |||
radiator_link_spring_starboard | extension_spring | 2 | radiator_mount_beam_upper, radiator_mount_beam_lower | radiator_frame |
Synchronization hardware: radiator_leaf_sync_equalizer (cross_shaft_and_equalizer_cable). A short torque tube between the upper and lower support links plus a crossover equalizer cable between the two leaf hinges keeps both leaves phase-locked so one side cannot outrun the other during the spring-driven sweep.
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_link_torque_tube | torque_tube | 1 | radiator_mount_beam_upper, radiator_mount_beam_lower | ||||
radiator_leaf_equalizer_cable | equalizer_cable | 1 | radiator_frame | radiator_mount_beam_upper, radiator_mount_beam_lower |
Support carriage: radiator_support_carriage carrying radiator_mount_beam_upper, radiator_mount_beam_lower. The upper and lower mount beams act as the rigid carriage that carries the radiator leaf hinge line and the deployed stop pads.
| State field | Model key |
|---|---|
| drive_fraction | radiator_drive_fraction |
| carriage_fraction | radiator_support_carriage_fraction |
| leaf_rotation_fraction | radiator_leaf_rotation_fraction |
| closeout_extension_fraction | radiator_closeout_extension_fraction |
| Leaf | Hinge | Stowed hinge origin | Deployed hinge origin | Axis unit vector |
|---|---|---|---|---|
| Port radiator leaf | radiator_leaf_port_hinge | [-1.224744871391589, -0.8296896369201714, -2.637] | [-0.08000000000000007, -2.92, -2.874744871391589] | [0.5773502691896257, 0.5773502691896257, 0.5773502691896257] |
| Starboard radiator leaf | radiator_leaf_starboard_hinge | [-1.224744871391589, -0.8296896369201714, -2.603] | [1.1006207261596574, -2.92, -2.874744871391589] | [0.5773502691896257, 0.5773502691896257, 0.5773502691896257] |
Closeouts: Top, bottom, aft, and front closeout panels ride on the support carriage and extend into the final thermal shell as the leaves open.
Routing hardware: radiator_equalizer_and_harness_routing (guided_cable_and_service_loop). Cable guides on the upper and lower carriage beams keep the equalizer cable, radiator harness, and detector thermal strap on a positive route with service-loop slack through the full sweep so nothing cuts across the opening leaves.
Routed state fields: radiator_support_carriage_fraction, radiator_leaf_rotation_fraction, radiator_closeout_extension_fraction
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_upper_cable_guide_pair | cable_guide | 2 | radiator_mount_beam_upper | radiator_harness, radiator_service_loop, detector_thermal_strap | |||
radiator_lower_cable_guide_pair | cable_guide | 2 | radiator_mount_beam_lower | radiator_harness, radiator_service_loop, detector_thermal_strap |
| Routed flex run | Components | Guides | Available length (m) | Min residual slack (m) |
|---|---|---|---|---|
radiator_harness_main_run | radiator_harness_1 | radiator_mount_beam_upper, radiator_mount_beam_lower | 1.180 | 0.080 |
radiator_service_loop_transition | radiator_service_loop_1 | radiator_mount_beam_upper | 0.160 | 0.030 |
detector_thermal_strap_port_run | detector_thermal_strap_1 | radiator_mount_beam_upper | 1.600 | 0.070 |
detector_thermal_strap_starboard_run | detector_thermal_strap_2 | radiator_mount_beam_lower | 1.570 | 0.070 |
Deployed capture: radiator_deployed_capture via radiator_mount_beam_upper, radiator_mount_beam_lower. Upper and lower mount-beam stop pads arrest the sweep and the radiator-frame capture tabs seat against them to lock the deployed cold-view geometry.
Retained capture hardware: radiator_capture_hooks (hard_stop_tabs_and_overcenter_hooks). Retained capture hooks on the radiator frame stay seated against the upper and lower stop pads after the springs relax so the cold-view geometry remains positively captured on orbit.
| Part | Kind | Qty | Anchors | Engages | Acts on | Routes via | Managed families |
|---|---|---|---|---|---|---|---|
radiator_capture_hook_upper | capture_hook | 2 | radiator_mount_beam_upper | radiator_frame | |||
radiator_capture_hook_lower | capture_hook | 2 | radiator_mount_beam_lower | radiator_frame |
Routed flex hardware feasibility
The released harness, service-loop, and detector thermal-strap runs keep explicit available-length and residual-slack assumptions tied to the radiator cable-guide hardware.
| Route | Peak required (m) | Available (m) | Min residual seen (m) | Required residual (m) | Peak util | Verdict |
|---|---|---|---|---|---|---|
radiator_harness_main_run | 1.075 | 1.180 | 0.105 | 0.080 | 0.979 | PASS |
radiator_service_loop_transition | 0.113 | 0.160 | 0.047 | 0.030 | 0.895 | PASS |
detector_thermal_strap_port_run | 1.487 | 1.600 | 0.113 | 0.070 | 0.973 | PASS |
detector_thermal_strap_starboard_run | 1.463 | 1.570 | 0.107 | 0.070 | 0.977 | PASS |
Event log
| Time (s) | Type | Mechanism | Title |
|---|---|---|---|
| 5 | pyro | launch_restraint_pyros | Fracture launch-restraint pyro locks |
| 20 | actuator | launch_release_actuator | Retract launch release actuators |
| 35 | latch | sunshield_stow_latch | Release packed sunshield latches |
| 44 | electromagnet | sunshield_stack_hold | De-energize sunshield hold-down electromagnets |
| 44 | release | sunshield_hinge_release | Release membrane hinge line into deployment travel |
| 44 | release | radiator_support_link_drive | Release radiator support-link drive into deployment sweep |
| 420 | latch | sunshield_deployed_latch | Capture deployed latch line |
Deployment state screening
46 sampled states track 117 watched components across 41400 watched proxy-pair checks.
Minimum proxy clearance across the sampled deployment is -0.024000 m.
| Family | Peak velocity util | Peak acceleration util | Peak ang velocity util | Peak ang acceleration util | Peak stress util |
|---|---|---|---|---|---|
| detector_thermal_strap | 0.208 | 0.124 | 0.136 | 0.086 | 0.000003 |
| launch_release_actuator | 0.415 | 0.124 | 0.000 | 0.000 | 0.000000 |
| launch_restraint | 0.436 | 0.164 | 0.865 | 0.865 | 0.000001 |
| radiator | 0.894 | 0.706 | 0.533 | 0.121 | 0.000001 |
| radiator_cable_guide | 0.570 | 0.339 | 0.000 | 0.000 | 0.000000 |
| radiator_capture_hook | 0.808 | 0.481 | 0.000 | 0.000 | 0.000000 |
| radiator_connector | 0.969 | 0.692 | 0.000 | 0.000 | 0.000000 |
| radiator_deployment_spring | 0.539 | 0.321 | 0.733 | 0.362 | 0.000000 |
| radiator_equalizer_cable | 0.757 | 0.451 | 0.000 | 0.000 | 0.000000 |
| radiator_frame | 0.927 | 0.724 | 0.533 | 0.121 | 0.000001 |
| radiator_harness | 0.388 | 0.231 | 0.934 | 0.576 | 0.000000 |
| radiator_isolator | 0.840 | 0.432 | 0.909 | 0.460 | 0.000000 |
| radiator_mount | 0.285 | 0.170 | 0.982 | 0.136 | 0.000000 |
| radiator_mount_beam | 0.570 | 0.339 | 0.000 | 0.000 | 0.000000 |
| radiator_release_puller | 0.806 | 0.480 | 0.798 | 0.712 | 0.000000 |
| radiator_service_loop | 0.775 | 0.461 | 0.000 | 0.000 | 0.000000 |
| radiator_shroud | 0.966 | 0.858 | 0.000 | 0.000 | 0.000001 |
| radiator_stow_latch | 0.808 | 0.481 | 0.000 | 0.000 | 0.000000 |
| radiator_sync_torque_tube | 0.490 | 0.292 | 0.000 | 0.000 | 0.000000 |
| sunshield_inner_frame | 0.793 | 0.517 | 0.000 | 0.000 | 0.000000 |
| sunshield_membrane | 0.793 | 0.517 | 0.000 | 0.000 | 0.000000 |
| sunshield_outer_frame | 0.793 | 0.517 | 0.000 | 0.000 | 0.000000 |
| sunshield_outrigger | 0.000 | 0.000 | 0.000 | 0.000 | 0.000000 |
| sunshield_support_brace | 0.000 | 0.000 | 0.000 | 0.000 | 0.000000 |
| sunshield_support_mast | 0.000 | 0.000 | 0.000 | 0.000 | 0.000000 |



Sampled motion evidence
The published deployment movie is sourced from these sampled states rather than only the declared milestone steps. Use the detailed report to inspect per-element pose histories, translational and rotational rates, and adjacent-transition consistency.
Open motion report · Download sampled state ledger · Download per-element histories
Collision screening result: clear.
Checks
| Check | Verdict | Actual |
|---|---|---|
| deployment_step_ids_unique | PASS | [] |
| deployment_step_records_complete | PASS | [] |
| deployment_step_timestamps_monotonic | PASS | [0.0, 5.0, 20.0, 35.0, 44.0, 180.0, 420.0] |
| deployment_event_ids_unique | PASS | [] |
| deployment_event_records_complete | PASS | [] |
| deployment_event_metadata_complete | PASS | [] |
| deployment_event_types_covered | PASS | [] |
| deployment_event_step_references_valid | PASS | {"bad_step_event_refs": [], "invalid_event_refs": []} |
| deployment_camera_coverage_declared | PASS | [] |
| deployment_render_manifest_complete | PASS | {"manifest_signature_match": true, "missing_manifest_pairs": [], "missing_render_files": [], "missing_sample_manifest_pairs": [], "missing_sample_render_files": []} |
| deployment_sampling_policy_declared | PASS | [] |
| deployment_sampling_intervals_cover_step_pairs | PASS | {"actual_coverage": {"effective_timestep_max_s": 11.333334, "effective_timestep_min_s": 3.0, "end_s": 420.0, "interval_count": 6, "start_s": 0.0}, "coverage_mismatch": [], "coverage_span_matches": true, "missing_interval_pairs": [], "reported_coverage": {"effective_timestep_max_s": 11.333334, "effective_timestep_min_s": 3.0, "end_s": 420.0, "interval_count": 6, "interval_kind_counts": {"dwell": 1, "motion": 5}, "start_s": 0.0, "timeline_duration_s": 420.0, "timeline_sample_times_s": [0.0, 5.0, 10.0, 15.0, 20.0, 27.5, 35.0, 38.0, 41.0, 44.0, 55.333333, 66.666667, 78.0, 89.333333, 100.666667, 112.0, 123.333333, 134.666667, 146.0, 157.333333, 168.666667, 180.0, 190.0, 200.0, 210.0, 220.0, 230.0, 240.0, 250.0, 260.0, 270.0, 280.0, 290.0, 300.0, 310.0, 320.0, 330.0, 340.0, 350.0, 360.0, 370.0, 380.0, 390.0, 400.0, 410.0, 420.0], "unique_sample_time_count": 46}, "sampling_interval_issues": [], "unexpected_interval_pairs": []} |
| deployment_sampling_interval_kinds_covered | PASS | {"missing_interval_kinds": [], "present_interval_kinds": ["dwell", "motion"]} |
| deployment_motion_sampling_rules_complete | PASS | [] |
| deployment_motion_interpolation_contracts_complete | PASS | [] |
| deployment_radiator_mechanism_definition_complete | PASS | [] |
| deployment_motion_event_elision_policy_complete | PASS | [] |
| deployment_sequence_spans_stowed_to_deployed | PASS | {"first_state_name": "stowed_locked", "last_state_name": "deployed", "spacing_end_m": 0.12, "spacing_start_m": 0.035} |
| deployment_endpoint_geometry_valid | PASS | {"deployed": [], "stowed": []} |
| deployment_hardware_inventory_grounded | PASS | [] |
| deployment_element_state_histories_complete | PASS | {"element_count": 117, "interpolated_history_records": 4563, "issues": [], "moment_count": 51} |
| deployment_element_state_transitions_physically_consistent | PASS | {"transition_record_count": 5265, "violations": []} |
| deployment_rigid_hardware_shape_preserved | PASS | {"explicit_non_rigid_families": ["detector_thermal_strap", "radiator_connector", "radiator_harness", "radiator_isolator", "radiator_mount", "radiator_service_loop"], "rigid_families": ["radiator", "radiator_frame", "radiator_mount_beam", "radiator_shroud"], "violation_count": 0, "violations": []} |
| deployment_radiator_endpoint_contact_closed | PASS | {"component_counts": {"carriage_beams": 2, "frames": 2, "isolators": 4, "panels": 2}, "frame_support_paths": [{"contact_count": 2, "expected_contact_count": 2, "frame": "radiator_frame_panel_1", "support_contacts": [{"beam_contacts": [{"beam": "radiator_mount_beam_upper", "clearance_m": -0.08584895054858532}], "frame_clearance_m": -0.07484895054858498, "isolator": "radiator_isolator_1"}, {"beam_contacts": [{"beam": "radiator_mount_beam_lower", "clearance_m": -0.04598287275827584}], "frame_clearance_m": -0.03498287275827572, "isolator": "radiator_isolator_3"}]}, {"contact_count": 2, "expected_contact_count": 2, "frame": "radiator_frame_panel_2", "support_contacts": [{"beam_contacts": [{"beam": "radiator_mount_beam_upper", "clearance_m": -0.08584895054858532}], "frame_clearance_m": -0.07484895054858498, "isolator": "radiator_isolator_2"}, {"beam_contacts": [{"beam": "radiator_mount_beam_lower", "clearance_m": -0.04598287275827584}], "frame_clearance_m": -0.03498287275827572, "isolator": "radiator_isolator_4"}]}], "isolator_carriage_clearances": [{"best_beam": {"beam": "radiator_mount_beam_upper", "clearance_m": -0.08584895054858532, "passes": true}, "isolator": "radiator_isolator_1"}, {"best_beam": {"beam": "radiator_mount_beam_upper", "clearance_m": -0.08584895054858532, "passes": true}, "isolator": "radiator_isolator_2"}, {"best_beam": {"beam": "radiator_mount_beam_lower", "clearance_m": -0.04598287275827584, "passes": true}, "isolator": "radiator_isolator_3"}, {"best_beam": {"beam": "radiator_mount_beam_lower", "clearance_m": -0.04598287275827584, "passes": true}, "isolator": "radiator_isolator_4"}], "issues": [], "panel_frame_clearances": [{"clearance_m": -0.009999999999999787, "frame": "radiator_frame_panel_1", "panel": "radiator_panel_1", "passes": true}, {"clearance_m": -0.009999999999999787, "frame": "radiator_frame_panel_2", "panel": "radiator_panel_2", "passes": true}], "step_id": "deployed_and_captured"} |
| deployment_sampled_state_radiator_support_graph_closed | PASS | {"failing_sample_count": 0, "failing_samples": [], "issues": [], "leaf_ids": ["radiator_leaf_port", "radiator_leaf_starboard"], "sample_count": 46, "support_component_names": ["radiator_isolator_1", "radiator_isolator_2", "radiator_isolator_3", "radiator_isolator_4", "radiator_mount_1", "radiator_mount_2", "radiator_mount_3", "radiator_mount_4", "radiator_mount_beam_lower", "radiator_mount_beam_upper"]} |
| deployment_sampled_state_structural_connectivity_closed | PASS | {"failing_sample_count": 0, "failing_samples": [], "issues": [], "root_component_names": ["bus"], "root_families": ["bus"], "sample_count": 46, "support_component_names": ["sunshield_outrigger_1_1", "sunshield_outrigger_1_2", "sunshield_outrigger_1_3", "sunshield_outrigger_1_4", "sunshield_outrigger_1_5", "sunshield_outrigger_1_6", "sunshield_outrigger_2_1", "sunshield_outrigger_2_2", "sunshield_outrigger_2_3", "sunshield_outrigger_2_4", "sunshield_outrigger_2_5", "sunshield_outrigger_2_6", "sunshield_outrigger_3_1", "sunshield_outrigger_3_2", "sunshield_outrigger_3_3", "sunshield_outrigger_3_4", "sunshield_outrigger_3_5", "sunshield_outrigger_3_6", "sunshield_outrigger_4_1", "sunshield_outrigger_4_2", "sunshield_outrigger_4_3", "sunshield_outrigger_4_4", "sunshield_outrigger_4_5", "sunshield_outrigger_4_6", "sunshield_support_1", "sunshield_support_2", "sunshield_support_3", "sunshield_support_4", "sunshield_support_5", "sunshield_support_6", "sunshield_support_brace_1", "sunshield_support_brace_2", "sunshield_support_brace_3", "sunshield_support_brace_4", "sunshield_support_brace_5", "sunshield_support_brace_6"], "support_families": ["sunshield_outrigger", "sunshield_support_brace", "sunshield_support_mast"], "watch_families": ["sunshield_inner_frame", "sunshield_membrane", "sunshield_outer_frame"], "watched_component_names": ["sunshield_1", "sunshield_2", "sunshield_3", "sunshield_4", "sunshield_inner_frame_1", "sunshield_inner_frame_2", "sunshield_inner_frame_3", "sunshield_inner_frame_4", "sunshield_outer_frame_1", "sunshield_outer_frame_2", "sunshield_outer_frame_3", "sunshield_outer_frame_4"]} |
| deployment_sampled_state_kinematics_within_limits | PASS | {"peak_acceleration_utilization": 0.8582400009537771, "peak_angular_acceleration_utilization": 0.8649050976135999, "peak_angular_velocity_utilization": 0.982364298405934, "peak_velocity_utilization": 0.968982698058022, "sample_count": 46, "violations": []} |
| deployment_sampled_state_stress_within_allocation | PASS | {"peak_stress_utilization": 2.7794371243184984e-06, "violations": []} |
| deployment_sampled_state_interference_free | PASS | {"collision_count": 0, "collisions": [], "minimum_clearance_m": -0.02400000000000002} |
| deployment_sampled_state_routed_flex_hardware_feasible | PASS | {"failing_samples": [], "issues": [], "routes": [{"available_length_m": 1.18, "component_names": ["radiator_harness_1"], "description": "Main radiator harness run between the moving radiator-side connector and the fixed bus-side connector, with a routed slack allowance through the full carriage sweep.", "failing_sample_count": 0, "guide_part_names": ["radiator_mount_beam_upper", "radiator_mount_beam_lower"], "id": "radiator_harness_main_run", "minimum_residual_slack_m": 0.08, "minimum_residual_slack_seen_m": 0.10459310026390511, "passes": true, "peak_required_length_m": 1.0754068997360948, "peak_utilization": 0.9791583896068601}, {"available_length_m": 0.16, "component_names": ["radiator_service_loop_1"], "description": "Service loop retained near the radiator-side connector so the harness can sweep with the carriage without pulling taut at breakout or capture.", "failing_sample_count": 0, "guide_part_names": ["radiator_mount_beam_upper"], "id": "radiator_service_loop_transition", "minimum_residual_slack_m": 0.03, "minimum_residual_slack_seen_m": 0.0468629150101523, "passes": true, "peak_required_length_m": 0.1131370849898477, "peak_utilization": 0.8946067811865481}, {"available_length_m": 1.6, "component_names": ["detector_thermal_strap_1"], "description": "Port detector thermal strap run from the detector-side cold finger into the deployed radiator leaf, with retained slack so the strap never becomes a hard kinematic stop.", "failing_sample_count": 0, "guide_part_names": ["radiator_mount_beam_upper"], "id": "detector_thermal_strap_port_run", "minimum_residual_slack_m": 0.07, "minimum_residual_slack_seen_m": 0.1129286331853474, "passes": true, "peak_required_length_m": 1.4870713668146527, "peak_utilization": 0.9731696042591579}, {"available_length_m": 1.57, "component_names": ["detector_thermal_strap_2"], "description": "Starboard detector thermal strap run from the detector-side cold finger into the deployed radiator leaf, with retained slack so the strap never becomes a hard kinematic stop.", "failing_sample_count": 0, "guide_part_names": ["radiator_mount_beam_lower"], "id": "detector_thermal_strap_starboard_run", "minimum_residual_slack_m": 0.07, "minimum_residual_slack_seen_m": 0.10665409079056132, "passes": true, "peak_required_length_m": 1.4633459092094387, "peak_utilization": 0.9766534453563304}]} |
Stowed launch-locked configuration
Launch restraints, packed sunshield latches, and hold-down electromagnets keep the deployed hardware in the launch stack while the radiator support links and leaf hinges remain locked in the stowed package.


Launch restraint pyros fired
Pyro release devices fracture the restraint lock path while the actuators still hold the launch stack aligned and the radiator-side drive remains locked out.


Launch restraints retracted
Release actuators retract and remove the launch-only restraint load path before the thermal shell starts to unfold, leaving the radiator support-link drive armed but not yet translating.


Sunshield stow latches released
The packed sunshield latch line is released so the membrane stack can start separating without the launch hold-down hardware fighting the motion; the radiator package is still held at its stowed capture features.


Sunshield membrane stack released
Hold-down electromagnets de-energize and the hinge/release line allows the membrane stack to begin separating into deployment travel while the radiator support carriage starts sweeping outboard under the released support-link drive.


Sunshield mid-deploy snapshot
The thermal shell is partway through the release path; the radiator support carriage is mostly swept outboard, the twin radiator leaves are rotating open on their hinge lines, and the shroud closeouts are extending toward the deployed stop condition.


Deployed and captured
The membrane stack reaches the released spacing and the deployed latch line captures the final thermal-shell geometry after the radiator support carriage hits its hard stops and the frame capture tabs seat in the cold-view position.

