Learn the science
of digital smell.
Tutorials, research deep-dives, and hardware guides for building the olfactory internet. From sensor fundamentals to machine-learning pipelines.

Read the Academy in order
A modular path that builds from first principles. Each module lists its essays in reading order — follow a module, or jump to any essay below.
Start here
Understand why digital smell has no engineering stack yet — and the one OpenSmell is building.
Sensor physics
Learn how a metal-oxide sensor turns a smell into a number, and what it can and cannot measure.
- 02.1How MOX Sensors Work14 minThe full physics chain from a SnO₂ film to a sample.
- 02.2Band Bending and the Power Law: The Chemistry Behind a MOX Reading16 minThe chemistry behind a single MOX reading.
- 02.3How Many Sensors Make a Nose? Dimensionality, Saturation, and the JL Bound15 minHow many sensors actually make a nose.
Data & features
See the container every recording flows through, then the auditable feature framework the SDK extracts.
Discipline
Learn the walls: what a normalized reading does and does not mean, and how to evaluate a model honestly.
Evidence
See what the stack actually does on real data, through one shared evaluation protocol.
This sequence mirrors the project's own onboarding order. All 21 essays are written for newcomers; nothing assumes prior knowledge.
Digitising Smell: An Open Source Primer
Vision and hearing got an engineering stack — file formats, codecs, libraries, APIs. Smell never did. Why that matters, why it is hard, and why openness is a methodological necessity, not a preference.
Building Your First E-Nose
A complete, flexible build guide for about $30: an ESP32, a handful of MOX modules, and the signal-chain thinking that turns raw resistance readings into a classifier that can tell espresso from tap water.
How MOX Sensors Work
The metal-oxide semiconductor sensor is the workhorse of digital olfaction: cheap, rugged, and maddeningly non-specific. A deep dive into the physics, the history, and how to read one properly.
A Field Guide to Odor Sensor Technologies
MOX, electrochemical cells, PIDs, QCMs, IR, GC-MS, and biomimetic biosensor arrays — what each technology actually measures, how it fails, and what it costs. Including a deep dive on Aryballe's silicon-photonics nose.
Osmo and the Principal Odor Map: A Field Review
How Osmo turned Google Research's machine learning into a 256-dimensional map of human olfaction — and why its sensor-map-printer architecture became the shared vocabulary of the entire field.
SmellNet: An Open Benchmark for Real-World Smell Recognition
MIT Media Lab recorded 828,000 sensor timesteps across 50 foods and 43 mixtures with cheap portable MOX arrays — the first large, open, sensor-side dataset for machine olfaction. What SmellNet is, what ScentFormer achieves, and why open benchmarks are the field's missing engine.
The Sixty-Year History of Digital Olfaction
From Theophrastus's On Odours and Aristotle's smell classes, through Taguchi's tin-dioxide patent and Persaud and Dodd's model nose, to the Nobel Prize and the deep-learning era — a 60-year timeline of a field that is finally arriving.
Odor Psychophysics and the Open Data Commons
Detection thresholds, Steven's power law, the trillion-smells debate, and why the quality of your model is decided before you write a single line of ML code — a field guide to the human data that makes digital olfaction possible.
The Chemoprint, Explained
What is a 29-dimensional physicochemical vector, why does it capture the properties that make molecules smell, and how do you compute, normalise, and validate one? A working guide with RDKit.
Band Bending and the Power Law: The Chemistry Behind a MOX Reading
A metal-oxide sensor is a resistor that changes when molecules chemisorb on a hot SnO₂ surface. This essay walks through the surface chemistry (band bending, oxygen adsorption, depletion layers) and the empirical power law Rs/R₀ = a·C^b that every practical calibration rests on.
What a Normalized Reading Can and Cannot Mean
The voltage divider equation looks device-dependent, yet Rs/R₀ cancels supply voltage and load resistance exactly. But it cannot cancel the sensor itself. This essay proves the theorem, then shows what zero-shot transfer can and cannot promise — measured, not assumed.
How Many Sensors Make a Nose? Dimensionality, Saturation, and the JL Bound
One sensor is a gas detector, not a nose. Six diverse sensors give roughly four to five effective dimensions and separate twenty to forty substances. This essay derives why count saturates, why selection matters more than count, and what the Johnson–Lindenstrauss bound says about the ceiling.
From SMILES to a Feasibility Verdict: Predicting Odour from Molecular Structure
A molecule's structure — written as a SMILES string — can be converted into the physical properties that determine whether an electronic nose can detect it: vapor pressure, redox character, and headspace concentration. This essay shows how, and why the verdict is an estimate, not a calibration.
The Signal Chain: From a SnO₂ Film to a Sample Number
Between the hot film and a feature vector sits a chain of decisions: the voltage divider, the ADC, sampling rate, the baseline window, and the dead-channel gate. Each one can silently corrupt the data. This is the field guide to that chain, decision by decision.
The .osmell Format: Anatomy of a Portable Smell Recording
A smell recording should be a file, not a folder you have to explain. The .osmell format is a zip container with a manifest, per-channel CSV traces, baseline provenance, and an optional event log — self-describing enough that any client can re-normalize any recording. This is its anatomy.
187 Dimensions, Explained: The OpenSmell Feature Framework
Six MOX channels can be turned into 187 structured features across five categories — device-agnostic, absolute, temporal, health, and hardware — plus advanced decay/saturation features, selectivity ratios, and global metrics. This essay explains the taxonomy, why it is structured, and which features transfer across devices.
Reference-Point Calibration for Metal-Oxide Sensors
A MOX sensor's response is a power law with two unknown constants per channel, and both vary per unit. Calibration means measuring those constants against known reference concentrations — and the numbers show the method is unbiased when done right: σ=5%, six points, two decades → median error ≈7%. This is the sanctioned route to quantification.
Evaluating an E-Nose Model the Way It Will Be Used
The most common reason e-nose models fail in the field is evaluation design, not model quality: windows from the same recording leak across train and test, and session invariance gets reported as substance generalization. This essay lays out leak-aware, recording-fair evaluation and the numbers that separate real results from artifacts.
The U-Suite: Six Evaluations, One Shared Protocol
Gas detection, onset timing, spoilage quantification, indoor-air monitoring, rig chemoprinting, and smell taxonomy — six recording-fair evaluations of the OpenSmell framework on public data, one shared harness, null baselines beside every headline. Every number is measured, reproducible, and committed with provenance.
The OpenSmell Stack: An Orientation Map
The Python SDK, the Rust core, the web and desktop apps, the hardware build guide, and the research layer that validates them. Where every repo lives, how the pieces connect, what is ready for contribution, and the open research questions that need data.
Will My E-Nose Actually Smell It? The 4-Step Physics Chain
A compound can be intensely smelly to a human and nearly invisible to a MOX sensor. Feasibility is a physics question — identity, volatility, signal, reactivity — and it deserves a falsifiable answer before you buy hardware.
Contribute to the Academy
Have expertise in olfaction, sensor hardware, or cheminformatics? We welcome guest articles, tutorials, and research summaries.
Get in touch on Discord