Installation

noodlelab comes in seven tiers. Each tier includes everything in the tiers above it, so 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

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

Geospatial

noodlelab[geo]

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

1–23

Full

noodlelab[full]

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

all 25

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

    • 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, Decision Matrix; 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

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]". A node pack is any package that declares a noodlelab.nodes entry point (see Writing a node). It shows up in the editor on the next start, and noodlelab tiers lists it under “Other packs”.