The Julia Programming Language
Slashing simulation times from 15 minutes to under 60 milliseconds refutes the aerospace dogma that compute cost is negligible compared to labor by turning batch runs into real-time interactive engineering.
AI-assisted summary of Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia — original source. Check the original for full context.
Source published:
Key ideas
- NASA's Launch Services Program developed RECURSAT in Julia to model spacecraft separation dynamics, replacing a legacy Simulink tool with a modular, recursive architecture capable of handling arbitrary rideshare and secondary payload topologies. (7:49)
- The simulation execution time dropped from 15 minutes for 514 Monte Carlo runs in Simulink to under 60 milliseconds in Julia, achieving an approximate 15,000x speedup. (12:30)
- RECURSAT leverages ecosystem composability across DifferentialEquations.jl, ComponentArrays.jl, MonteCarloMeasurements.jl, and Unitful.jl to eliminate unit conversion errors and support native automatic differentiation. (10:21)
- Sub-60 millisecond solve times transform the engineering workflow, allowing analysts to perform interactive slider-based parameter sweeps and 3D visualization in MeshCat.jl before running numerical optimizers. (12:56)
Detailed notes
## Background Presented by Jonathan Diegelman of the NASA Launch Services Program and A.I. Solutions, this talk was published on YouTube by The Julia Programming Language channel on March 9, 2021. The presentation details how NASA GN&C engineers replaced legacy Simulink separation dynamics simulations with RECURSAT, a high-performance simulation built on Julia's SciML ecosystem that dramatically accelerates analysis workflows and leverages composable tooling.
## TL;DR NASA GN&C engineer Johnny Diegelman demonstrates the migration of spacecraft separation dynamics modeling from a rigid, slow Simulink environment to Julia. Separation analysis requires carefully balancing competing constraints—preventing vehicle re-contact via high separation velocity while restricting tip-off rotational rates to protect solar-sensitive instruments and save RCS propellant. By replacing over 1,000 lines of MATLAB configuration scripts with a lean, recursive multi-body solver utilizing DifferentialEquations.jl, ComponentArrays.jl, and Unitful.jl, simulation batch times collapsed from 15 minutes to under 60 milliseconds. Diegelman demonstrates how this 15,000x speedup transforms engineering workflows, enabling real-time interactive parameter sweeps in notebooks, native optimization under uncertainty, and seamless automatic differentiation for sensitivity analysis.
## Atmosphere & style The presentation possesses the pragmatic, quietly triumphant energy of a practicing aerospace engineer who successfully dismantled a frustrating daily workflow bottleneck. Diegelman speaks with understated technical authority and relatable candor, contrasting the clunky friction of sprawling legacy scripts with the tactile joy of sub-second computational responsiveness. Watching the talk feels like an inspiring peek into modern computational engineering, where interactive 3D sliders and instant Jacobians turn a once-tedious batch simulation chore into an intuitive, exploratory design sandbox.
## Bulletin - [07:49](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=469s) NASA's Launch Services Program developed RECURSAT in Julia to model spacecraft separation dynamics, replacing a legacy Simulink tool with a modular, recursive architecture capable of handling arbitrary rideshare and secondary payload topologies. - [12:30](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=750s) The simulation execution time dropped from 15 minutes for 514 Monte Carlo runs in Simulink to under 60 milliseconds in Julia, achieving an approximate 15,000x speedup. - [10:21](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=621s) RECURSAT leverages ecosystem composability across DifferentialEquations.jl, ComponentArrays.jl, MonteCarloMeasurements.jl, and Unitful.jl to eliminate unit conversion errors and support native automatic differentiation. - [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) Sub-60 millisecond solve times transform the engineering workflow, allowing analysts to perform interactive slider-based parameter sweeps and 3D visualization in MeshCat.jl before running numerical optimizers.
## Key takeaways - [01:53](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=113s) Spacecraft separation dynamics are constrained by a fundamental trade-off: maintaining sufficient relative velocity to avoid re-contact while keeping tip-off rotation rates low enough to protect Sun-sensitive sensors and conserve fuel. - [01:53](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=113s) Separation forcing functions involve complex physical mechanisms, including clamp band release impulses and hinging moments, pusher spring strokes, and umbilical connector friction. - [04:22](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=262s) The legacy Simulink architecture was restricted to a single spacecraft separating from a launch vehicle, making it difficult to adapt to modern CubeSat and rideshare topologies. - [04:22](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=262s) The legacy workflow required MATLAB input decks exceeding 1,000 lines, creating high cognitive load, error-prone configuration, and steep onboarding barriers for junior engineers. - [04:22](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=262s) A 15-minute runtime for 514 Monte Carlo runs in Simulink created a workflow bottleneck that destroyed engineering intuition and precluded real-time sensitivity analysis. - [07:49](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=469s) RECURSAT uses a recursive tree-traversal algorithm that computes separation forces down through child stages and propagates equal and opposite reaction forces upward before each integration time step. - [10:21](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=621s) ComponentArrays.jl allows complex nested state vectors with named fields to behave as contiguous arrays compatible with native ODE and optimization solvers. - [10:21](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=621s) MonteCarloMeasurements.jl enables natural mathematical operations on uncertain parameters before unpacking them directly into an EnsembleProblem for differential equation solving. - [10:21](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=621s) Unitful.jl enforces physical unit safety across all parameters, preventing errors stemming from mixed imperial and metric specifications provided by international contractors. - [12:30](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=750s) The transition from a 15-minute Simulink runtime to under 60 milliseconds in Julia fundamentally shifts the analysis paradigm from batch execution to real-time interactivity. - [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) In the ballast placement design problem, adding ballast to damp excessive y-axis tip-off rates introduces the competing risk of dropping separation velocity below the 0.55 m/s threshold. - [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) Sub-60 millisecond performance enables engineers to manually sweep design variables via interactive notebook sliders to build physical intuition before applying automated optimization. - [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) Local parameter sensitivities around the optimal ballast design can be evaluated in a single step using ForwardDiff.jacobian on the simulation function, normalized by allowable parameter limits.
## Detailed walkthrough ### [00:11](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=11s) Overview: Tooling for Engineering Simulations
Johnny Diegelman introduces himself as a Guidance, Navigation, and Control (GN&C) engineer at NASA's Launch Services Program in Florida. The focus of the presentation is a case study on migrating one of their critical separation simulation tools from Simulink over to the Julia programming language. A major theme of the discussion is how simulation tooling directly shapes how engineers work and think. Diegelman emphasizes that the integration of DifferentialEquations.jl and the SciML suite with the wider Julia package ecosystem provides a massive operational advantage, allowing engineers to pick and choose modular capabilities effortlessly.
The presentation follows an arc that begins with the physics of spacecraft separation, reviews the structural and performance limitations of their legacy Simulink tool, and presents RECURSAT—a new recursive separation simulation built on DifferentialEquations.jl. The session culminates in demonstrations of interactive parameter tuning, optimization under uncertainty, automatic differentiation, and global sensitivity analysis.
[01:53](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=113s) Spacecraft Separation: Dynamics and Competing Constraints
Spacecraft separation involves releasing a satellite from the launch vehicle's upper stage, a process highlighted by footage from the Sentinel-6 Michael Freilich mission, for which Diegelman served as the GN&C separation simulation and analysis engineer. The event is dominated by two strictly competing engineering requirements:
```mermaid flowchart LR accTitle: Separation Requirements Trade-off accDescr: Diagram illustrating the fundamental engineering tension between minimum relative separation velocity and maximum allowable tip-off rate.
subgraph Tension["Separation Trade-Off"] direction TB RelVel["High Relative Velocity<br/>(Prevents Re-contact)"] TipOff["Low Tip-Off Rate<br/>(Keeps Sun Off Sensors & Conserves Fuel)"] end
RelVel <--->|"Direct physical tension"| TipOff ```
1. **Strict Tip-Off Rotational Rate Limits:** Missions enforce tight rotational constraints, typically on the order of one to a few degrees per second. Because spacecraft often experience a delay before activating their reaction control systems (RCS), they remain in an uncontrolled free tumble immediately after separation. Any excessive rotational rate threatens to swing sensitive optical and scientific instruments toward the Sun. Furthermore, spacecraft operate under limited attitude control system (ACS) fuel budgets; burning excessive propellant simply to detumble compromises the mission lifecycle. 2. **Minimum Relative Velocity:** Simultaneously, the spacecraft and upper stage must achieve a minimum relative separation speed to prevent catastrophic re-contact.
Pushing harder to satisfy the relative velocity requirement inherently increases the energy pumped into the system, making it far more likely to exceed allowable tip-off rates. The dynamics are governed by rigid body equations of motion utilizing quaternions for attitude updates (handled computationally as four-element vectors). The forcing functions are intricate: - **Clamp bands:** The circumferential structural band holding the vehicles together imparts an impulse upon release, followed by a localized hinging moment as it peels away. - **Pusher springs:** Mechanical springs that supply the primary stroke and push force. - **Connectors:** Purge lines, electrical disconnects, and umbilical fittings that induce frictional drag during withdrawal.
Because slight variations in spring constants and vehicle mass properties dramatically sway the outcome, high-fidelity modeling is critical.
[04:22](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=262s) Limitations of the Legacy Simulink Architecture
The existing analysis framework relies on a GUI-driven, block diagram causal modeling environment in Simulink driven by a top-level MATLAB input deck. While originally structured so analysts would not have to modify internal simulation blocks, the architecture suffers from four core flaws:
```mermaid flowchart TD accTitle: Legacy Simulink Workflow Bottlenecks accDescr: Flowchart illustrating how rigid architecture, derived parameters, large input decks, and slow compute degrade the legacy workflow.
subgraph ArchitecturalBottlenecks["Simulink Tool Deficiencies"] Rigid["Rigid Single-Vehicle Limit<br/>(Cannot easily support CubeSats/rideshares)"] Dispersion["Late Monte Carlo Draws<br/>(Lumped masses force input deck bloat)"] DeckSize["1,000+ Line MATLAB Decks<br/>(Error-prone, high barrier for interns)"] SlowRun["15-Minute Compute Time<br/>(514 runs; blocks real-time trades)"] end
Rigid --> DeckSize Dispersion --> DeckSize DeckSize --> SlowRun ```
- **Inflexibility with Modern Multi-Payload Manifests:** The Simulink model is hardcoded for a single spacecraft separating from a launch vehicle. However, current flight manifests routinely incorporate secondary payloads, CubeSats, and rideshares. Accommodating arbitrary vehicle topologies in a visual block diagram environment is inherently awkward. - **Derived Dispersed Parameters:** The simulation draws Monte Carlo dispersions only *after* reading the input deck. If a vehicle has a normally distributed dry mass and a uniformly distributed propellant mass, the physics engine merely requires a single lumped mass value. Accommodating this requires writing custom parsing hooks directly into the input deck and parser, causing exponential code bloat. - **Input Deck Complexity and High Cognitive Load:** Input scripts exceed 1,000 lines of MATLAB code. Setting or unsetting flags across a script of that size is highly error-prone when turnaround times must be kept to a couple of hours. It creates an intimidating barrier to entry for incoming interns and junior engineers who are usually tasked with these introductory analyses. - **Runtime Bottlenecks and Workflow Friction:** Running a standard Monte Carlo set of 514 runs consumes roughly 15 minutes. Diegelman pushes back against the conventional industry justification that compute is negligible compared to labor:
> “The typical argument is you know engineering times expensive compute is cheap so don't really worry about it well the problem with that is when it takes engineering hours to iterate with slow tools all of a sudden compute becomes expensive.”
A 15-minute wait per run discourages interactive sensitivity analysis, destroys intuition, and makes numerical optimization under uncertainty effectively impossible.
[07:49](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=469s) RECURSAT: Design, Requirements, and Capabilities
To replace the legacy tool, Diegelman designed **RECURSAT**, honoring the NASA custom of project acronyms by making it a recursive acronym. RECURSAT handles arbitrary vehicle topologies using a tree-traversal calculation:
```mermaid flowchart TD accTitle: RECURSAT Recursive Force Evaluation Loop accDescr: Tree evaluation showing recursive force gathering down through child stages followed by reaction forces passed upward before stepping the integrator.
subgraph Traversal["Recursive Force Pass"] Parent["Parent Stage (LV)"] Child1["Spacecraft Child"] Child2["Secondary Payload / CubeSat"]
Parent -->|"1. Recurse down"| Child1 Child1 -->|"2. Recurse down"| Child2 Child2 -->|"3. Equations of motion update"| Child2 Child2 -->|"4. Equal & opposite forces"| Child1 Child1 -->|"5. Equal & opposite forces"| Parent end
Parent --> Step["6. Take integration time step"] ```
The algorithm operates in a clear sequence: 1. The solver queries forces from the top-level parent separation system (which initially has none). 2. It recurses down into the children, calculating separation forces generated by their separation systems. 3. The traversal proceeds to leaf nodes lacking child separation interfaces. 4. Leaf vehicle equations of motion are updated with their local applied forces. 5. Equal and opposite reaction forces are propagated back up through the parent hierarchy to update each parent vehicle's equations of motion. 6. Once back at the root parent with no higher stages remaining, the simulation takes an integration time step.
Diegelman laid out several core performance requirements for RECURSAT: - **Efficiency:** Execute hundreds or thousands of Monte Carlo trajectories in less than a second, facilitating real-time exploration. - **Composability:** Interoperate cleanly across the Julia SciML ecosystem, allowing automatic differentiation through the dynamics without custom glue code. - **Universality:** Support arbitrary multi-body separation topologies seamlessly. - **Simplicity:** Eliminate giant scripts in favor of a lean interface where analysts import types, declare only the specific parameters required for their mission, and query docstrings directly from the Julia REPL.
The resulting input setup replaces more than 1,000 lines of MATLAB code with an input deck compact enough to display on a single slide.
[10:21](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=621s) Composability Across the Julia Ecosystem
The greatest strength of building the spacecraft separation tool in Julia is its deep composability with packages across the broader ecosystem. Rather than relying on a heavy, monolithic modeling framework like Simulink or Modelica to achieve modularity, the simulation uses native Julia libraries that plug directly into standard differential equation solvers. For handling complex state vectors, Diegelman utilizes ComponentArrays.jl, a library he authored. This package allows engineers to organize initial conditions and parameters into complex nested structures with named fields, while still behaving as standard contiguous arrays that pass seamlessly into ODE solvers or optimization routines without custom interfacing code.
To solve the dependent parameter issue that plagues traditional Monte Carlo frameworks, the tool uses MonteCarloMeasurements.jl. Engineers can define inputs as uncertain random variables and perform arithmetic operations directly on them—adding uncertainties and computing derived properties naturally. Because uncertain types do not always interact cleanly with conditional statements inside ODE loops, the parameters are unpacked into an `EnsembleProblem` immediately prior to hitting the differential equation solver. Physical units are another essential safeguard enforced via Unitful.jl. Because the Launch Services Program constantly coordinates with both American and European aerospace contractors, documentation frequently mixes imperial and metric units within the exact same specification document. Requiring strict physical units on every input completely prevents unit conversion disasters. Furthermore, global sensitivity analysis is accessible as a one-liner, and both forward-mode and source-to-source automatic differentiation integrate cleanly with the differential equations to provide local sensitivities for robust design and optimization under uncertainty.
```mermaid flowchart TD accTitle: RECURSAT Simulation Architecture accDescr: Pipeline showing nested inputs passing through Julia libraries to the solver and downstream analyses.
subgraph Inputs["1. Input Definitions"] CA["ComponentArrays.jl<br/>(Nested structured state)"] UN["Unitful.jl<br/>(Physical unit enforcement)"] MC["MonteCarloMeasurements.jl<br/>(Uncertain parameters)"] end
subgraph Core["2. Execution Core"] ENS["EnsembleProblem setup"] ODE["DifferentialEquations.jl<br/>(<60 ms solve time)"] end
subgraph Analysis["3. Downstream Analysis"] OPT["Optimization & AD<br/>(ForwardDiff / Jacobians)"] VIS["MeshCat.jl<br/>(3D Visualization)"] end
CA --> ENS UN --> ENS MC --> ENS ENS --> ODE ODE --> OPT ODE --> VIS ```
- ComponentArrays.jl preserves modular, nested variable naming while passing directly through ordinary differential equation solvers and optimization solvers. - MonteCarloMeasurements.jl propagates parameter uncertainties and correlations before unpacking states into an `EnsembleProblem`. - Unitful.jl enforces explicit unit annotations across all inputs to eliminate errors caused by mixing imperial and metric contractor specifications. - “It allows for like modular design that you would usually get with a modeling framework like Simulink or Modelica or something, but you don't need to have it—it's just a regular differential equation solver.” — Jonathan Diegelman
---
[12:30](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=750s) Dramatic Efficiency Gains Over Legacy Tools
When comparing the computational performance of RECURSAT against the legacy Simulink pipeline, the speedup is staggering. A standard simulation batch that previously required 15 minutes to evaluate in Simulink runs in under 60 milliseconds in Julia. While that amounts to an approximate 15,000x speedup, Diegelman emphasizes that the exact factor matters far less than the practical paradigm shift: the simulation has transitioned from a slow batch process into an essentially instantaneous calculation.
Even as additional physical effects and modeling features continue to be incorporated into the new tool—which could potentially double the run time—a 120-millisecond execution time remains fast enough to preserve real-time interactivity. This leap in speed fundamentally changes how guidance, navigation, and control (GN&C) engineers approach design problems, allowing them to iterate rapidly rather than waiting on overnight simulation queues.
- The simulation runtime dropped from 15 minutes in Simulink to under 60 milliseconds in Julia. - “The important part is we're under 60 milliseconds for that same set of runs that took 15 minutes in our Simulink tool, which was pretty amazing to us.” — Jonathan Diegelman
---
[12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) Demo: The Ballast Placement Problem and Interactive Exploration
To showcase RECURSAT in practice, Diegelman demonstrates a typical separation analysis problem where a spacecraft separates from a launch vehicle under strict mission requirements: the spacecraft must experience a rotation rate of less than 1.0 degree per second across all vehicle axes (tip-off rates), and the relative separation velocity between the spacecraft and the upper stage must exceed 0.55 meters per second to eliminate any risk of re-contact. Using MeshCat.jl, the simulation results are rendered directly in a dynamic 3D visualizer. An initial run immediately reveals a failure: the spacecraft exceeds the maximum allowable tip-off rate about its y-axis.
To mitigate this tip-off violation, the GN&C team must adjust the spacecraft's mass properties by placing an internal ballast mass. This presents a constrained design problem: the ballast has a defined mass envelope and must physically fit within a restricted spatial volume inside the bus. Adding too much ballast mass runs the risk of lowering the separation velocity below the mandatory 0.55 m/s threshold. Because the solver executes in real time (sub-60 ms), engineers do not need to leap directly into black-box optimizers; instead, they can use interactive notebook sliders to manually sweep parameters and build physical intuition.
``` +-----------------------------------------------------------------------------------+ | Baseline Requirements vs. Separation Dynamics | +------------------------------------+----------------------------------------------+ | Spacecraft Tip-off Rotation Rate | < 1.0 deg/s on all body axes | | Separation Relative Velocity | > 0.55 m/s relative velocity | | Initial Nominal Simulation Result | Fails y-axis tip-off rate requirement | | Mitigation Strategy | Internal ballast mass placement | | Ballast Design Constraints | Mass limit & geometric bounding box in bus | | Trade-off Risk | Excess ballast reduces velocity below 0.55m/s| +------------------------------------+----------------------------------------------+ ```
When automated optimization is needed, native Julia optimizers accept the structured `ComponentArray` types directly, returning the optimal solution in the exact same named format without manual vector packing and unpacking. Finally, sensitivity analysis is demonstrated on the ballast placement: a global sensitivity analysis using partial correlation coefficients (PCC) between ballast parameters and tip-off rates is constructed in a single line of code. For local sensitivity analysis, forward-mode automatic differentiation is executed simply by calling `ForwardDiff.jacobian` on the simulation function at the optimal ballast point. Because center-of-gravity (CG) coordinates and mass magnitudes differ substantially in magnitude, the sensitivities are normalized by the allowable parameter limits to prevent the CG coordinates from swamping the mass influence.
- Interactive 3D visualization of the separation dynamics is rendered via MeshCat.jl. - Real-time performance allows interactive slider-based parameter sweeps in notebooks, letting engineers explore system dynamics intuitively before running automated algorithms. - Forward-mode automatic differentiation produces local parameter sensitivities around the optimum by evaluating a single Jacobian call. - “A lot of times for engineering it's more important to actually get a feel for how your system behaves and be able to interactively explore it like that, and that's almost more important sometimes than getting the correct answer.” — Jonathan Diegelman - “It's cool that both the differential equation solver and the optimizer are written in native Julia, so you can just send the weirdest types you want through them and they come out correctly.” — Jonathan Diegelman
## Notable quotes > [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) A lot of times for engineering it's more important to actually get a feel for how your system behaves and be able to interactively explore it like that, and that's almost more important sometimes than getting the correct answer. — Jonathan Diegelman
> [12:56](https://www.youtube.com/watch?v=tQpqsmwlfY0&t=776s) It's cool that both the differential equation solver and the optimizer are written in native Julia, so you can just send the weirdest types you want through them and they come out correctly. — Jonathan Diegelman
## Mentioned Jonathan Diegelman, NASA Launch Services Program, A.I. Solutions, Julia, DifferentialEquations.jl, SciML, RECURSAT, Simulink, MATLAB, Sentinel-6 Michael Freilich, ComponentArrays.jl, MonteCarloMeasurements.jl, Unitful.jl, MeshCat.jl, ForwardDiff, Modelica, C++, Fortran
## Video description Modeling Spacecraft Separation Dynamics in Julia
Jonathan Diegelman, NASA Launch Services Program and A.I. Solutions
Abstract: A common requirement for commercially launched NASA science missions is that the launch vehicle imparts low enough rotational velocity to the spacecraft to avoid pointing sensitive equipment toward the sun while keeping high enough separation velocity to preclude re-contact between the vehicles. To assess compliance with this requirement, engineers in the Guidance, Navigation, and Control group in NASA’s Launch Services Program run high-fidelity simulations of the separation event. In the past, the GN&C group has favoured high-level modeling languages in order to reduce development time. Unfortunately, these simulations tend to be slow in comparison to direct implementations in low-level languages such as C++ or Fortran, making it difficult to iterate on analyses and build intuition about the system. In this presentation, a new spacecraft separation simulation written in Julia’s SciML suite of tools is shown to outperform the legacy tools by orders of magnitude while providing even greater flexibility. Additionally, the new simulation takes advantage of the key feature of the SciML tools: composability with the rest of the Julia ecosystem of packages. This allows features such as automatic differentiation/local sensitivity analysis, physical units, uncertainty propagation, interactive notebooks, and 3D visualization. Beyond the aerospace industry, this presentation is a case study in how better tooling can improve the way engineers think about complex systems.
For more information on the SciML Open Source Scientific Machine Learning Software Ecosystem, see https://sciml.ai/
For more info on the Julia Programming Language, follow us on Twitter: https://twitter.com/JuliaLanguage
Contents 00:00 Welcome! 00:15 Overview: A case study in tooling for engineering simulations 01:52 Spacecraft Separation: Problem description and modelling 04:22 Current Separation Analysis Tool: Flexibility, complexity and efficiency issues 07:49 RECURSAT: Design, requirements and capabilities 12:56 RECURSAT Demo: The ballast placement problem
S/O to https://github.com/pitmonticone for the video timestamps!
Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: https://github.com/JuliaCommunity/YouTubeVideoTimestamps
Interested in improving the auto generated captions? Get involved here: https://github.com/JuliaCommunity/YouTubeVideoSubtitles
[Source](https://www.youtube.com/watch?v=tQpqsmwlfY0)