Back to Insights Insight

Introducing Sounio: A Language for Epistemic Computing

Announcing Sounio, a new programming language designed for scientific computing with first-class uncertainty and provenance tracking.

The Sounio Team

Introducing Sounio

We’re excited to announce Sounio, a new programming language designed from the ground up for epistemic computing—programs that know what they don’t know.

Why Sounio?

Modern scientific computing faces a fundamental problem: our tools treat all values as exact, when in reality, measurement uncertainty is pervasive. A temperature reading of 23.5°C from a sensor isn’t exact—it might be 23.5 ± 0.2°C with 95% confidence.

Sounio makes uncertainty a first-class concept:

let temp: KnowledgeC> = measure(
    value: 23.5,
    uncertainty: 0.2,
    source: "sensor_001"
)

// Uncertainty propagates automatically through calculations
let temp_f = temp * 1.8 + 32.0  // Still tracks uncertainty!

Key Features

Epistemic Types

The Knowledge<T> type wraps any value with its uncertainty, provenance, and confidence level. When you combine knowledge values, uncertainty propagates according to GUM (Guide to the Expression of Uncertainty in Measurement) standards.

Algebraic Effects

Side effects are tracked in the type system. Every function declares what effects it needs:

fn read_config() -> Config with IO, Fail {
    let content = perform IO::read("config.toml")?
    parse_toml(content)?
}

Units of Measure

Type-safe dimensional analysis prevents unit errors at compile time:

let distance: km = 42.195
let time: h = 2.5
let speed: km/h = distance / time  // Type-checked!

Get Started

Visit our Getting Started guide or try Sounio in the interactive playground.


The Sounio Team