Using Spaxiom for Real-Time Contamination Risk Monitoring
Joe Scanlin
November 2025
Spaxiom is a sensor abstraction layer and runtime that translates billions of heterogeneous sensor streams into structured, semantic events. It provides a spatial-temporal DSL for defining zones, entities, and conditions, making it easy to build context-aware applications across industries.
INTENT (Intelligent Network for Temporal & Embodied Neuro-symbolic Tasks) is Spaxiom's high-level event vocabulary. Instead of overwhelming AI agents with raw sensor data, Spaxiom emits compact, meaningful events that agents can immediately understand and act upon.
Cleanrooms in semiconductor fabs and biotech facilities need to maintain ultra-clean environments. Today, contamination control relies on individual sensor alarms and manual procedures, making it hard to spot patterns or predict problems before they cause expensive batch failures. The challenge is that particle counters, pressure sensors, door locks, and occupancy trackers all output data in different formats that don't speak to each other, and none of it is structured for AI agents to interpret and act on.
Spaxiom connects all the cleanroom sensors (particle counters, pressure monitors, door locks, occupancy trackers) into one intelligent system that understands the spatial relationships between rooms and can detect complex contamination patterns. Instead of overwhelming operators with hundreds of sensor readings, it translates everything into simple, actionable alerts like "airlock violation in progress" or "contamination risk rising in Room 3." This helps facilities prevent contamination events before they happen and quickly identify root causes when issues do occur.
High-grade semiconductor fabs, biopharma facilities, and advanced manufacturing lines rely on strict control of particulate contamination, pressure cascades, and controlled access. Today, contamination control is typically enforced by:
What is often missing is a spatially and temporally coherent language for:
Spaxiom can act as a cleanroom contamination cortex: fusing particle counts, pressure differentials, door states, and occupancy into structured INTENT events that agents and engineers can reason about.
Typical cleanroom-relevant sensors include:
Spaxiom represents each zone as a Zone with associated sensor objects and topological relationships (e.g., which rooms feed which in the pressure cascade).
From raw signals, we define higher-level INTENT events, such as:
PressureBreach: pressure differential below spec across a boundary;ParticleExcursion: temporary spike of particulate counts above class limit;AirlockViolation: door sequencing broken (both doors open, or bypass of required dwell);HighRiskMovement: occupancy trajectory that crosses from dirtier to cleaner areas under non-compliant conditions.Mathematically, for a given zone z and monitoring window [t0, t1] we can define:
Pressure breach indicator. Let ΔPz,u(t) be the measured pressure differential between z and upstream zone u (e.g., corridor or anteroom). For a minimum acceptable differential ΔPmin > 0, define
The total number of breach-seconds in the window is:
Particle excursion integral. Let pz(t) be the particle count for zone z, with a threshold pmaxz that defines acceptable class performance. Define the (non-negative) excursion:
Airlock violation count. Let Va be the count of airlock a violations in the window, derived from door state sequences and configured policies (e.g., both doors open simultaneously, insufficient purge dwell).
Composite contamination risk index. We can define a simple contamination risk index (CRI) for zone z over [t0, t1] as:
where α, β, γ are tunable weights reflecting domain expertise, and 𝒜(z) is the set of airlocks affecting z. This can be normalized by window length or baseline values to obtain a dimensionless score in [0, 1].
A sketch of how a Spaxiom-based contamination monitor might look in Python-embedded DSL form:
from spaxiom import Zone, Condition, Quantity
from spaxiom.temporal import within
from spaxiom.logic import on
class CleanroomZone:
def __init__(self, name, particle_sensor, dp_sensors, airlocks):
self.zone = Zone.named(name)
self.particle_sensor = particle_sensor # e.g. counts / m^3
self.dp_sensors = dp_sensors # dict: upstream_zone -> sensor
self.airlocks = airlocks # list of Airlock objects
# Configurable thresholds
self.max_particles = 3500 # domain-specific
self.min_dp = Quantity(5.0, "Pa")
def pressure_breach_seconds(self, window_s: float) -> float:
total = 0.0
for upstream, sensor in self.dp_sensors.items():
# integrate indicator over the window
series = sensor.history(window_s=window_s)
for dt, value in series: # dt in seconds, value in Pa
if value < self.min_dp:
total += dt
return total
def particle_excursion(self, window_s: float) -> float:
# approximate integral of (p - p_max)+ over the window
total = 0.0
series = self.particle_sensor.history(window_s=window_s)
for dt, value in series:
excess = max(0.0, value - self.max_particles)
total += excess * dt
return total
def airlock_violations(self, window_s: float) -> int:
return sum(a.violation_count(window_s=window_s)
for a in self.airlocks)
def contamination_risk_index(self, window_s: float) -> float:
B = self.pressure_breach_seconds(window_s)
E = self.particle_excursion(window_s)
V = self.airlock_violations(window_s)
alpha, beta, gamma = 1e-3, 1e-6, 1.0 # example scaling
score = alpha * B + beta * E + gamma * V
# Optionally squash to [0,1] via logistic
return 1.0 - (1.0 / (1.0 + score))
# Example zone wiring
zone_a = CleanroomZone(
name="ISO7_bio_room_3",
particle_sensor=particles_z3,
dp_sensors={"antechamber": dp_z3_ante, "corridor": dp_z3_corr},
airlocks=[airlock_3A, airlock_3B],
)
# Condition that fires when CRI exceeds a threshold in the last hour
high_risk = Condition(
lambda: zone_a.contamination_risk_index(window_s=3600) > 0.7
)
@on(within(3600, high_risk))
def contamination_agent():
snapshot = {
"zone": zone_a.zone.name,
"CRI": zone_a.contamination_risk_index(window_s=3600),
"breach_seconds": zone_a.pressure_breach_seconds(3600),
"particle_excursion": zone_a.particle_excursion(3600),
"airlock_violations": zone_a.airlock_violations(3600),
}
# Hand off to LLM agent or workflow system:
# e.g., propose root-cause checks, quarantine, or extra cleaning.
recommend_actions(snapshot)
Here the Spaxiom layer:
history(window_s=...)) for time integration;contamination_risk_index for agents, instead of raw time series.Figure A.1: Cleanroom contamination risk timeline over one shift. Three normalized metrics are overlaid: particle counts (red) vs threshold, pressure differential (blue) vs minimum spec, and computed contamination risk index CRIz (purple). The shaded region indicates when CRI exceeds the alert threshold. An airlock violation event at ~2h coincides with particle excursion and elevated risk.