SciLab-based static site generator for lab notebooks.
Let matrices compute. Let figures render. Let science publish.
| Audience | Why labnote-ssg |
|---|---|
Computational scientists |
Publish research with embedded numerical results, signal plots, and matrix computations |
MATLAB refugees |
Open-source alternative with no license fees, vendor lock-in, or proprietary restrictions |
Lab notebook maintainers |
Reproducible documentation that executes inline — results update when data changes |
Technical writers |
Scientific documents with live computation, not static screenshots of results |
SciLab brings numerical computing to documentation. Four properties make it distinctive:
Matrix-native computation — First-class matrix operations, linear algebra, and array mathematics. Documentation includes live numerical results, not copy-pasted output.
Open scientific ecosystem — ATOMS package manager provides signal processing, optimization, statistics, and control systems. FOSS from Inria/ESI with no commercial encumbrance.
Xcos block diagrams — Visual modeling for control systems and signal flow renders directly into documentation. Hybrid simulation combines continuous and discrete dynamics.
Scilab-to-C compilation — Performance-critical sections compile to native code. Documentation can include benchmarks that actually run.
# Ensure SciLab is installed
scilab-cli --version
# Initialize a new lab notebook site
labnote init my-research
# Build the site (executes all .sce blocks)
labnote build
# Serve with live reload
labnote serve ┌─────────────────────────────────────┐
│ labnote-ssg │
│ SciLab Documentation Engine │
└──────────────────┬──────────────────┘
│
┌──────────────────────────┼──────────────────────────┐
│ │ │
┌───────┴───────┐ ┌────────┴────────┐ ┌────────┴────────┐
│ Parser │ │ Executor │ │ Renderer │
│ .adoc + .sce │ │ SciLab Engine │ │ HTML + SVG │
└───────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└──────────────────────────┼──────────────────────────┘
│
┌──────────────┴──────────────┐
│ Output │
│ Static site with embedded │
│ computed results & plots │
└─────────────────────────────┘
-
Inline execution —
.scecode blocks run through SciLab, results embedded in output -
Figure generation — Plots render to SVG, embedded directly in pages
-
Incremental builds — Only re-execute changed computational blocks
-
Reproducibility — Same source produces identical output on any machine with SciLab
-
AsciiDoc base — Full technical documentation capabilities (equations, tables, cross-refs)
[source,scilab]
....
// This block executes during build
A = [1 2; 3 4];
B = inv(A);
disp(B);
....Results appear inline in the rendered documentation.
labnote-ssg operates as a satellite in the poly-ssg ecosystem:
-
poly-ssg-mcp — Central hub providing unified MCP interface
-
poly-container-mcp — Container runtime management
-
poly-iac-mcp — Infrastructure as Code tooling
The ReScript adapter exposes MCP tools for AI-assisted workflows:
-
labnote_init— Initialize new lab notebook project -
labnote_build— Execute and render documentation -
labnote_serve— Development server with live reload -
labnote_clean— Remove generated artifacts
-
SciLab 2024.0+ — Core computation engine
-
Deno 1.40+ — Adapter runtime (for MCP integration)
See CONTRIBUTING.md for development guidelines.
Dual licensed under MIT OR AGPL-3.0-or-later. See LICENSE.txt for details.