Skip to content

blisspixel/fartapp

v0.8.0-alpha.3Apache-2.0

Inspect law contexts and run explicit scientific CLI models with typed JSON evidence.

F.A.R.T. Lab

Flatulence Aerodynamics Research & Testing

From pfft to planetary extinction.

Candidate Open Isobar identity mark

F.A.R.T. Lab is the world's most overengineered and fun fart app. It is a vulgar comedy game, a serious simulation laboratory, and an attempt at a Universal Flatulence Translator. There is no menu of prerecorded farts. One calculated account must drive every supported sound, visual, particle, vibration, recoil, damage result, explanation, and controller response.

“Fart” is the comic umbrella, not the scientific ontology. A supported case may describe a gas discharge, non-gaseous transfer, machine, colony, planet, star, distributed structure, source-free transition, speculative mathematical model, or fictional law pack. It need not contain a human, body, source, interface, Earth, three-dimensional geometry, linear time, observer, shared language, or shared humor. Universal means extensible mappings and precise failures to map, not one universal equation. See Bounded universality.

Status

Current source release: v0.8.0-alpha.3.

F.A.R.T. Lab is experimental v0.8 alpha software. The permanent v0.6 toy output is stable. Newer commands and schemas remain provisional. The Rust core and bounded evidence carrier, local experiment sessions, and assurance registry are working foundations for the full v0.8 and v0.9 gates.

Available nowNot implemented yet
Dependency-free Go CLI on Linux, macOS, and WindowsPlume, acoustics, particles, chemistry, damage, or haptics
Permanent intensity 1 to 5 string oracle in Go and RustCertified .fart archives, case commitment, or certificate authority
Read-only law-context inspectionNatural-language generator, MCP, or A2A play
Strict scenario-document validationhtop-style Terminal Lab or native Godot application
Exact rigid ideal-mixture reservoir endpoint predictionComplete trusted RES-002 blowdown benchmark
Quasi-steady restriction flow, component histories, and coupled blowdownSelective species transport and wall heat-transfer closures
Portable Agent Plugins skill with tested CLI recipesHosted MCP or A2A services and verified agent-host installations
Native Rust reservoir, restriction, prescribed histories, and bounded local PlayServiceGeneral play contracts, full model registry, and complete Go command parity
Opt-in adaptive discharge timing with explicit error estimates and work limitsFixed-time adaptive stepping and rigorous solution-error bounds
Atomic .fartevidence capture and bounded native journal replay and reconstructionRatified scientific identities and certified archive migration
Machine-readable assurance registry and read-only inspectionAutomatic scientific ratification or proof that declared checks passed

The reservoir predictor is a standalone SI continuum model. It accepts explicit component masses and properties, rigid volume, temperature, closure, and withdrawal fraction. It predicts exact adiabatic or prescribed-isothermal endpoints with component, total-mass, energy, and equation-of-state checks. The restriction predictor adds prescribed or linearly compliant area, subsonic flow, and the analytical choking boundary. The walking skeleton couples those oracles in time: rate from the restriction, thermodynamic path from the reservoir, with mass, energy, and impulse ledgers plus an L/D dry-flow signature. It is not a field solver, plume, sound, occurrence, or case identity. The evidence carrier retains the versioned software account. The supporting catalog and authority experiments are summarized in the capability contract and roadmap.

Quick start

The primary examples use Linux and macOS shell conventions. Both languages are built and tested on Linux, macOS, and Windows in required CI jobs. Repository checks run in Go; PowerShell is not a build or runtime prerequisite.

go build -o artifacts/bin/fartapp ./cmd/fartapp
./artifacts/bin/fartapp --help
./artifacts/bin/fartapp reservoir predict testdata/reservoir/synthetic-mixture-adiabatic.json
./artifacts/bin/fartapp restriction predict testdata/restriction/gamma15-choked.json
./artifacts/bin/fartapp walk simulate testdata/walk/ordinary-low-pressure.json
./artifacts/bin/fartapp walk refine testdata/walk/ordinary-low-pressure.json --relative-tolerance 1e-8 --max-evaluations 100000

On Windows, build with go build -o artifacts/bin/fartapp.exe ./cmd/fartapp and use ./artifacts/bin/fartapp.exe in the examples. The build creates the output directory; artifacts/ is ignored by Git.

v0.7 reservoir report snapshot showing mixture state, transfers, assumptions, nonclaims, and balance claims

The image records the v0.7 presentation of a still-executable synthetic verification case. Its large values are chosen for clean analytical checking. They are not a biological default, an ordinary pfft, or empirical validation. Use --format json for the complete typed report. The simulation contract gives the equations and limits.

The project still preserves the tiny command where it began:

./artifacts/bin/fartapp 3
braaap (respectable)

Current Go CLI printing the exact output for intensity three

IntensityExact output
1pfft (gentle)
2toot (respectable)
3braaap (respectable)
4blorp (respectable)
5KABLAM (mighty)

Other current examples:

./artifacts/bin/fartapp law list
./artifacts/bin/fartapp assurance inspect PHY-001 --format json
./artifacts/bin/fartapp law inspect conformance.relation.atemporal@v0alpha1 --format json
./artifacts/bin/fartapp scenario validate testdata/scenarios/atemporal-probe.json
./artifacts/bin/fartapp restriction predict testdata/restriction/ordinary-pressure-subsonic.json
./artifacts/bin/fartapp restriction history testdata/restriction/gamma15-choked-history.json
./artifacts/bin/fartapp walk explain testdata/walk/ordinary-low-pressure.json
./artifacts/bin/fartapp walk branch testdata/walk/ordinary-low-pressure.json
./artifacts/bin/fartapp walk witness testdata/walk/ordinary-low-pressure.json --format json
go test ./...

Every command is discoverable from root help. File and standard-input forms are equivalent. Text is an English presentation; machine tokens are versioned Lab protocol symbols, not a claim of shared language or meaning.

The native Rust CLI includes the reservoir and restriction services, followed by bounded local experiments:

cargo build --locked --release -p fart-cli
./target/release/fart restriction predict testdata/restriction/gamma15-choked.json
./target/release/fart restriction history testdata/restriction/gamma15-choked-history.json
./target/release/fart play run testdata/play/reservoir-session.jsonl
mkdir -p artifacts
./target/release/fart play run testdata/play/reservoir-session.jsonl --format transcript > artifacts/session.json
./target/release/fart play replay artifacts/session.json --format json
./target/release/fart play reconstruct artifacts/session.json --format json

The session walkthrough covers explicit admission, action costs, retries, observations, and retained evidence. Each prediction uses the authored baseline. Replay verifies and presents retained data without recalculating the solver. Reconstruction freshly admits the baseline and recomputes every retained attempt, then compares the full canonical transcript. Its comparison and identity contract keeps retained evidence, fresh results, authentication, and scientific identity distinct. An unfinished session remains unfinished at EOF, even when reconstruction matches.

The assurance registry exposes declared invariants, tolerances, source checks, and counterexamples. Inspection does not execute those checks or establish applicability. Human numerical reports use the shared design language; JSON retains full precision.

The coupled-oracle walkthrough follows one explicitly synthetic 100 mL reservoir at about 930 Pa above ambient through prediction, simulation, explanation, an area counterfactual, arithmetic checks, and retained witness comparison. It is a low-energy test case, not the ratified Reference Pfft or a biological measurement. JSON includes every retained sample, component mass transfers, authored inputs, numerical policy, and evidence limits.

The separate walk refine operation regularizes the equalization endpoint, integrates choking and compliance transitions, and reports estimated time, impulse, and stroke error. Tolerance satisfaction and completed discharge are separate outcomes. The analytical reference records independent checks, supported scope, and the remaining RES-002 work.

Retain an account without copying witness values by hand:

./artifacts/bin/fartapp evidence capture testdata/walk/ordinary-low-pressure.json --output artifacts/ordinary.fartevidence
./artifacts/bin/fartapp evidence verify artifacts/ordinary.fartevidence
./artifacts/bin/fartapp evidence replay artifacts/ordinary.fartevidence
./artifacts/bin/fartapp evidence reconstruct artifacts/ordinary.fartevidence --format json

The Rust foundation uses the same authored reservoir requests through a separate native implementation:

cargo run --locked -p fart-cli -- 3
cargo run --locked -p fart-cli -- reservoir predict testdata/reservoir/synthetic-mixture-adiabatic.json --format json

The project layout explains package responsibilities, dependency direction, and why conventional manifests stay at the root.

Agents can use the portable fartapp-lab skill. The integration guide records its executable evidence, current protocol versions, and the gates for future MCP and A2A adapters.

One calculation, no canned farts

For a familiar continuum specialization, a fart event can be modeled as a pressure-driven discharge from a deformable reservoir through a compliant interface into an external medium. That one definition opens real thermodynamics, compressible flow, turbulence, fluid-structure interaction, acoustics, multiphase transport, chemistry, orbital mechanics, and eventually relativistic and cosmological model packs.

The wider platform begins more cautiously:

declared law contexts + explicit inputs + supported operation
                              |
                       one Lab account
                /        /       |       \
             audio    visuals   ledgers   explanations

Presentation never edits the scientific account. Humor, locale, soundtrack, camera, accessibility, and cosmetic source skin are read-only views. A child can use an Explorer view and a specialist can use a Research view over the same calculation. Humor may be absent, declined, or untranslatable without making a case invalid. See gameplay, culture, and localization.

Absurd classifications with real boundaries

Comic labelScientific boundary
Dry fartPredominantly single-phase carrier flow
Wet fartDeclared droplets or a supported condensation model
ShartDense liquid or particle loading with deposition
Solid fartFLATULENCE BOUNDARY CROSSED: EVENT RECLASSIFIED AS FECAL EJECTA
Choked fartMach 1 at the controlling restriction, not automatically a supersonic plume
Plasma fartA selected ionized or reacting model replaces ordinary gas chemistry
Solar fartA stellar source pack disables the biological model
Cosmological fartDISCHARGE BOUNDARY INVALID: CASE RECLASSIFIED AS COSMOLOGICAL INITIAL DATA

The in-game language stays deadpan:

  • The Choked Cheek Criterion: the selected restriction reaches sonic flow.
  • The Wetness Transition: multiphase behavior appears only when supported breakup, transport, and deposition conditions are met.
  • The No-Sound-in-Vacuum Lemma: recoil and structural vibration may remain, but no exterior acoustic wave propagates without a supporting medium.
  • Conservation of Ass: every represented unit of mass, momentum, and energy must appear somewhere in the applicable ledger.

“Keep it subsonic for this test” is funny because it is also a real instruction. The project does not let comic wording create an unsupported regime.

Bulk composition, trace odorants, reaction chemistry, condensation, aerosols, observer detection, and hazard assessment are separate future capabilities. Detectable does not mean hazardous, and undetectable does not mean safe. A humorous “Big Butt” or “Small Butt” native preset will be a localized label over an inspectable morphology and material parameter patch, never a scientific body type or a hidden change to composition, health, identity, or social worth.

The Reference Pfft

The Reference Pfft is a future low-energy, biology-neutral calibration concept for the first ordinary continuum case. It begins at explicitly declared ambient conditions with a soft synthetic source and a finite budget. It is not an SI unit, a biological norm, or a claim that one event can be recreated as the same encounter.

The project treats impermanence seriously. A retained record can be presented again. A calculation can be reconstructed. A new enactment is still a new encounter. The synthetic Paris standards-board debate explores whether a universal-constant traceability chain could standardize measurands without standardizing the fart itself. It is openly fictional brainstorming, not a real meeting or endorsement. See metrology and the French debate.

Product path

The promotion order is non-negotiable:

  1. CLI Lab: every model, parameter, run, sweep, comparison, and proof is available headlessly.
  2. Terminal Lab: an htop-style live instrument exposes the same services.
  3. Native Lab: a polished Godot application adds spatial audio, field visualization, haptics, worlds, story, and destruction.

The desktop application will not be a browser shell, embedded webview, or local web server. CLI first is a delivery discipline, not a requirement that later surfaces spawn a CLI process.

LayerDirection
Go oracleSmall, independent analytical references and permanent fixtures
Rust coreTyped domain, deterministic services, CLI, and Terminal Lab
Native computeOptional verified CPU and accelerator field backends
GodotNative Windows, macOS, and Linux presentation over the same services
MCP and A2AFirst-class agent adapters over canonical actions and observations

See interfaces and compute.

Planned htop-style terminal laboratory

Planned Terminal Lab concept. Values are illustrative. Unsupported law contexts replace entire panes instead of receiving fake Earth fields.

Planned native continuum simulation in a functionless reference enclosure

Planned native Earth-continuum projection. It is one optional spatial view, not a body, habitat, species, or universal default.

Ways to play

  • Quick Play: one immediate generated encounter with an explanation.
  • Broadcast: watch a seeded universe, being or non-being, source, story, and scientific account like interdimensional television.
  • Chill: subtle simulated structures, occasional releases, and music.
  • Freestyle: construct, compare, sweep, amplify, and deliberately cross model boundaries.
  • Challenges: optimize pitch, orbit, plume, damage, or similarity under honest mass, energy, numerical, and safety budgets.
  • Symphony: organize procedural emissions through music theory without replacing physical audio with canned samples.
  • Forecast Desk: compare compatible analytical, field, ensemble, and learned guidance without hiding disagreement or treating consensus as truth.
  • Agent Play: humans and software agents receive equivalent actions, observations, budgets, and evidence through CLI, MCP, and A2A adapters, with long-running tasks, branches, notebooks, ensembles, and multiplayer roles.

Questions can range from “what would a ladybug-scale hypothetical source look like after declared amplification?” to “what happens if the discharge boundary is replaced by cosmological initial data?” The first must not invent insect biology. The second must not describe the Big Bang as an explosion into an exterior. String theory, extra dimensions, quantum superposition, analogue gravity, cosmology, and fictional universes receive different model and evidence classes. An exquisitely precise refusal is a valid result and often a good punchline.

A Plumeprint is a declared two-dimensional projection of one retained account. A Fartflake is a three-dimensional projection whose topology, coordinates, distortion, and loss are explicit. Neither is the event itself. See snowflake artifacts.

Planned Pressure Standard audiovisual ident

The planned Pressure Standard is an original audiovisual ident derived from the same model state as the interface. It will not imitate a familiar cinema logo, chord, pitch rise, cadence, or reveal. See audio.

Proof standard

Every scientific feature must state:

  • its law or model, assumptions, applicability envelope, and unsupported effects;
  • its conservation and positivity evidence where those concepts apply;
  • whether the claim is code verification, solution verification, empirical validation, literature-relative consistency, analogy, or fictional-axiom conformance;
  • the exact implementation, precision, backend, and fixture revision needed to interpret the result.

The quality floor is 90 percent aggregate Go statement coverage and 80 percent for every package, with stricter tests for numerical, protocol, archive, and security code. Functional tests are not enough. The project also requires properties, fuzzing, race checks, static analysis, cross-platform builds, independent analytical fixtures, and progressively stronger numerical and physical validation. It does not imply NASA, university, standards-body, or laboratory approval. See quality, verification, and research.

Documentation

AreaDocuments
ScienceSimulation, models and ML, research, verification, compute, metrology
ProtocolsUniversality, capability reports, scenario probe, localization
ProductInterfaces, gameplay, audio, agent play, snowflakes
CultureCulture, consortium, French standards debate, design review, lab-director review
Public projectBrand, community, merchandise, media policy, media manifest, trademark policy
EngineeringRoadmap, quality, contributing, security

Contributing and license

Contributions are welcome under the contribution guide, code of conduct, and security policy. Repository code and declared project assets are licensed under Apache License 2.0. Trademarks, fonts, music, and third-party media retain their separately stated terms. No public artifact carries tool or model authorship credit.

The idea is deliberately silly. The implementation should be flawless.