CosmicFrontierLabs / unlinked
git clone https://github.com/CosmicFrontierLabs/unlinked.git
An increasingly feature complete simulink standin
+1
stars, 24h · #9,590
+~7
stars, 7 days · #10,238
+129
stars, 30 days · #3,863
130
★ total · +6% this week
5
forks · 1 open issues
Star history (as recorded here)
LanguageRust
LicenseApache-2.0
Created2026-09-30 (22d ago)
Last push1d ago
Watchers0
OwnerOrganization
Links
README excerpt
# Unlinked Unlinked is a Rust web application for opening Simulink diagrams, sharing versioned models within organizations, and running a growing subset of their simulations. It also includes a MATLAB/Octave-to-Rust compiler with LLVM IR output through `rustc`. The application follows single-binary-rust-website: Yew compiled to WebAssembly, Axum serving embedded frontend assets, shared Rust protocol types, PostgreSQL with Diesel migrations, and a single deployable backend binary. See PLAN.md for the architecture and remaining milestones, and the original template conventions for background. That archived template describes the starting point; the code and instructions below describe Unlinked. ## Current capabilities - Import ZIP/XML `.slx` and legacy textual `.mdl` models, retaining unknown blocks and parameters. Render root diagrams and nested subsystems as SVG; inspect blocks in the browser. - Edit models in the browser with Simulink's gestures: quick insert, ports that snap, lines that follow and branch, smart guides, in-place renaming, alignment and find. Saves are new file versions that keep everything the editor does not model. Run a simulation from the diagram and see its recorded values on the lines. - Organization and project permissions, Google/GitHub OAuth, immutable file versions, and audit events. Viewers can read models and run simulations; editors can change files. - Simulation jobs pinned to an immutable file version, with authenticated HTTP results and a typed WebSocket stream. Euler, RK4, and adaptive Dormand–Prince RK45 solvers are available. - A retained Diagram/Simulate workspace with guarded navigation, searchable signals, sample cursors and interval measurements, reference-run overlays, CSV export, and recorded run settings that can be explicitly reused. Project folders have shareable URLs, filtering, and pagination. - Simulation of the supported block subset, including basic sources, arithmetic, integrators, unit delays, switching, logic, and bounded transfer functions. Unsupported blocks and settings produce explicit errors. - MATLAB/Octave compilation to standalone Rust or LLVM IR. See compiler documentation for the implemented language subset. This is an independent implementation with partial compatibility. Rendering a model does not mean it can be simulated. Graphical Stateflow execution, arbitrary toolbox/library behavior, MATLAB callbacks, and general masked or conditional subsystem execution are not implemented. Stateflow diagrams and MATLAB Function code render; pure scalar MATLAB Function blocks execute when their metadata and backing structure match the supported subset. Model callbacks are not executed. Supply parameter values explicitly or select an authorized, versioned project initialization script; that path uses a bounded interpreter with no file or process access. Solver settings must be selected explicitly when running from the CLI. The separately licensed test corpus records upstream URLs, pinned revisi