Installation

noodlelab comes in eight tiers. Each tier includes the tiers it builds on (Maths on Basic, Science on Maths), except that Engineering, Geospatial and Machine learning each build on Science only and do not include one another; Full includes all three. Pick the smallest one that has what you need:

Tier

Install

Adds

Examples it runs

Library

noodlelab

The verifiable-science library without the editor: physical units (Pint), measurement uncertainty (GUM, with Monte Carlo checks), requirements with margins, checks, provenance records and the audit (noodlelab.verify), and headless runs of graphs (noodlelab run, test, verify). Needs only pydantic, NumPy, Pint and uncertainties.

1, 2, 9 (headless)

Basic

noodlelab[app]

The editor in the browser: inputs, math on numbers, text, repeat/sweep/optimize zones, requirements, checks, units, uncertainty and PDF reports. (noodlelab[report] adds PDF reports to the library without the editor.)

1, 2, 9

Maths

noodlelab[maths]

Arrays, XY plots, histograms and heatmaps, fitting (statistics, polynomial, linear, curve fit, calibration), calculus (interpolate, integrate, differentiate), matrices with units (solve A x = b, eigenvalues, natural frequencies), Fourier transforms, and symbolic maths with SymPy, including systems of equations.

1–3, 9, 13, 15, 16

Science

noodlelab[science]

Tables (load, filter, group, join, pivot), statistical tests, signal processing (filters, FFT, PSD, peaks), time series, study designs and sensitivity analysis, charts of tables.

1–17, 21, 23, 29

Engineering

noodlelab[engineering]

Materials, section properties, beams, stresses, buckling and safety factors, heat transfer, pipe flow, control systems in the manner of MATLAB’s Control System Toolbox (transfer functions, state space, PID, feedback, step and impulse responses, Bode, Nyquist, root locus, margins, pole placement, LQR), dB budgets and decision matrices.

the above and 24, 25, 28

Geospatial

noodlelab[geo]

Science plus vector data with GeoPandas, rasters, terrain, interpolation, zonal statistics, GPS tracks and maps.

1–23, 29

Machine learning

noodlelab[ml]

Science plus models of tables with scikit-learn, XGBoost and LightGBM: regression and classification, Gaussian processes that give each prediction its uncertainty, cross-validation, permutation importance, learning curves, conformal prediction intervals, PCA and clustering. Models remember the units of their columns, and metrics come out in the target’s unit, ready for a requirement.

1–17, 21, 23, 26, 27, 29

Full

noodlelab[full]

Every pack, so every example runs, plus remote storage (fsspec).

all 29

You can run a tier with uv without installing it first, install it as a tool, or add it to an existing environment with pip:

uvx "noodlelab[maths]" .                       # run once, in this folder
uv tool install "noodlelab[engineering]"       # install the `noodlelab` command
pip install "noodlelab[science]"               # into the current environment
docker run -p 8000:8000 ghcr.io/nkalis/noodlelab:geo   # a tier as a container image

Run noodlelab tiers to see which tier is installed, and which packs are missing and why. In the editor, examples you can’t run yet say which tier they need. The admin portal’s System tab shows the same list.

Every node, sorted by tier and pack:

  • Library (and Basic, which adds the editor)

    • core: Number, Integer, Text, Boolean, File Path, Read Text File, Math, Compare, Map Range, Value To Class, Format Text/Values, Join Text, Save Text File, Viewer, Describe Data, Repeat, Sweep and Optimize zones

    • report: New Report, Add Heading, Text, List, Note, Value, Key Values, Table, Figure, Image, Equation, Requirements, Compliance Matrix, Data Sources, Run Details, Page Break, Render PDF

    • requirements: Requirements, Load/Merge Requirements, Requirement Value, Verify Requirement, Check Candidates

    • checks: Expect Value, Expect In Range, Expect Table, Expect Conserved, Expect Limit, Expect Converged

    • units: Quantity, Make Quantity, Convert Units, Magnitude, Quantity Math, and the array versions

    • uncertainty: Measurement, Add Uncertainty (Type B), Mean of Repeats (Type A), Value and Uncertainty, Expanded Uncertainty, Uncertainty Budget, Monte Carlo

  • Maths

    • maths: Linspace, Array Math, Apply Function, Add Noise, Clip Values, Cumulative Sum, XY Plot, Histogram Plot, Heatmap, Save Figure, Statistics, Polynomial Fit, Linear Regression, Curve Fit, Inverse Prediction, Interpolate, Integrate, Derivative; Matrix, Identity/Diagonal Matrix, Transpose, Matrix Multiply, Inverse, Determinant, Element, Solve Linear System, Eigenvalues, Natural Frequencies; Fourier Transform, Inverse Fourier Transform, Power Spectrum

    • symbolic: Expression, Equation, Equations, Simplify, Substitute, Differentiate, Integrate, Solve, Solve System, Linear System, Solve Numerically, Solve ODE, Values, Set Value, Evaluate, Evaluate Matrix, Evaluate Over Range, Iterate, Expression To Math

  • Science

    • science: Load/Save CSV, Make Table, Get Column, Filter/Sort Rows, Select/Rename Columns, Add Column, Group Summary, Join Tables, Pivot Table, Parse Dates and more; Compare Groups, Two-Way ANOVA, Correlation Matrix, Detect Outliers, Bootstrap CI, Trend Test; Savitzky-Golay, Butterworth, Detrend, FFT, Welch PSD, Find Peaks, Envelope, Signal Statistics; Resample, Rolling Window, Climatology; Grid/Random/Latin Hypercube/Morris/Sobol/Files designs and Sensitivity Analysis; Bar Chart, Box Plot, Scatter Plot, Time Series Plot, Residual Plot

  • Engineering

    • engineering: Material, Material Table, Section Properties, Beam, Bending/Axial/Von Mises Stress, Euler Buckling, Safety Factor, Thermal Expansion, Wall/Pipe Conduction, Convection, Reynolds Number, Pipe Pressure Drop, To dB, From dB, dB Budget, Tolerance Stack-Up, Compare to Test, Decision Matrix, Pareto Front; Transfer Function (and from an expression), Zero-Pole-Gain, State Space, PID Controller, First/Second-Order System, Mass-Spring-Damper, Series, Parallel, Feedback, Convert System, Discretize, Minimal Realisation, Step/Impulse/Initial Response, Simulate, Bode Plot, Nyquist Plot, Stability Margins, Pole-Zero Map, Root Locus, DC Gain, Controllability & Observability, Pole Placement, LQR

  • Geospatial

    • geo: Read/Save Vector File, Points From Table, Reproject, Clip, Buffer, Dissolve, Spatial Join, Distance To Nearest, Count In Polygons, Measure, Centroids; Read Raster/ASCII Grid, Save GeoTIFF, Raster Math, Normalized Difference, Slope & Aspect, Hillshade, Classify, IDW Interpolation, Zonal Statistics and more; Track Statistics, Gutenberg-Richter, Map Plot

  • Machine learning

    • ml: Practice Data, Train/Test Split; Linear Model, Logistic Regression, Random Forest, Gradient Boosting, k-Nearest Neighbours, Support Vector Machine, Gaussian Process, XGBoost, LightGBM; Predict, Evaluate Model, Cross-Validate, Permutation Importance, Learning Curve; Prediction Interval; Principal Components, Cluster, Detect Anomalies

Updating

A server started with noodlelab serve looks for new versions itself: an admin updates it from the editor (File → Check for updates…), and it restarts into the new version. From a terminal, noodlelab update does the same (--check only says what is new). See Updates, also for Docker.

Adding more later

Install a bigger tier over the one you have, or add a node pack from PyPI next to it:

uv tool install --reinstall "noodlelab[geo]"              # a uv tool: switch tiers
uv tool install "noodlelab[maths]" --with my-noodle-pack  # a uv tool: add a third-party pack
uvx --with my-noodle-pack "noodlelab[maths]" .            # just this once
pip install "noodlelab[geo]" my-noodle-pack               # pip: add to the environment

Remote storage has its own extras, which work with any tier: s3, gcs, azure and sftp, for example "noodlelab[science,s3]". Nodes from others come as plugins: noodlelab plugins add <name or git URL> installs one and the plugins it requires. See Plugins.