AUTONOMOUS RESEARCH LABORATORY
GENESIS
From question to experiment to discovery.
An autonomous lab that reads the literature, forms competing hypotheses, writes the experiment, runs it in an isolated sandbox, and measures what actually happened. No human in the middle.
Dhruv Gouniyal · Parikshit Dahiya · Sagar Makkar
Deployed at genesisai.up.railway.app
GENESIS / 01
THE DIFFERENCE
Ordinary AI tools answer questions.
GENESIS tests them.
An LLM decides what to test and why. Executed code decides what is true. No metric in this system is ever produced by a language model — if the experiment did not run, there is no number to show.
No chat window
No hard-coded results
No human in the loop
GENESIS · Autonomous Research Laboratory
02
THE RESEARCH LOOP
A complete research team. One continuous loop.
01
Scout
Searches arXiv; pulls out concepts and open gaps
02
Scientist
Three competing, falsifiable hypotheses
03
PI
Picks one and records the evidence behind it
04
Designer
Dataset, variables, metrics, split
05
Engineer
Writes the Python, and repairs it on failure
06
Sandbox
Real execution. No network, no host access
07
Analyst
Supported or not, against the baseline
08
PI decides
Run the next experiment, or conclude
One pass through the loop is one experiment. Step 08 feeds step 02 with every measured number so far — the run ends when the budget is spent or the PI judges nothing further is worth testing.
Seven specialised agents, one continuous loop
03
THE SIX AGENTS
Each agent is one job, and one fallback.
Agent | What it owns |
Scout | Searches arXiv live; a curated corpus of real papers as fallback |
Scientist | Competing, falsifiable hypotheses; never re-proposes a tested one |
Experimentalist | Dataset, baseline, variables, parameters, metrics, train/test split |
Engineer | Writes executable Python; on failure it repairs, twice |
Analyst | Verdict computed arithmetically, not written by the model |
Investigator | What to run next, when to stop, and why — with structured evidence |
Every agent has a deterministic fallback, so the loop completes with no model provider at all. What degrades is the reasoning — never the measurement.
Scout · Scientist · Experimentalist · Engineer · Analyst · Principal Investigator
04
THE ONE THING THAT MATTERS
Where the numbers come from
01
The Engineer produces a Python program.
02
It is written to a throwaway directory with a trusted bootstrap.
03
A separate process runs it — environment scrubbed, network disabled.
04
The program must write result.json.
05
Every metric is coerced to a float. NaN, infinite and non-numeric values are discarded.
{"status": "success",
"metrics": {"f1": 0.9842,
"precision": 0.982,
"false_positive_rate": 0.0024},
"execution_time": 3.5}
No result.json, unparseable, or no numeric metrics — the run is a failure. A clean exit is not enough.
There is no path by which a model-authored string becomes a displayed metric.
05
EVIDENCE, NOT ESTIMATES
Every number on screen was computed by code that actually ran.
0.364 → 0.984
F1 score, baseline to best
4.27% → 0.24%
False-positive rate
100%
Metrics from executed code
Network anomaly detection · three experiments · roughly thirteen seconds of compute. Nothing here is hard-coded: re-run it and the ranking is re-derived from execution.
06
A REPRESENTATIVE RUN
Three experiments, each one chosen by the last
Experiment | Approach | Features | F1 | FPR |
EXP-001 | isolation_forest | base | 0.364 | 4.27% |
EXP-002 | random_forest | base | 0.848 | 1.98% |
EXP-003 | random_forest | temporal | 0.984 | 0.24% |
F1 +170%
Best over the first baseline
FPR -94%
False alarms, near eliminated
EXP-003 exists because EXP-002's measured errors pointed at the time dimension. The PI chose it, and recorded why.
Source: demo benchmark, network anomaly detection · deterministic dataset, real execution
07
HONESTY BY CONSTRUCTION
A synthetic dataset can be rigged. This one cannot.
Invisible scans
Each port-scan flow looks like an ordinary DNS probe. Scans surface only in a time window, through distinct ports per source. A per-flow model is structurally blind to them.
Benign confusers
Monitoring sweeps, backups and flash crowds are labelled normal but mimic attacks per flow. They are why false positives exist, and only a windowed feature separates them.
Measurement jitter
Without it a supervised model memorises the generative signature and scores a meaningless F1 of 1.0. That happened in development; the jitter was added to fix it.
So “temporal features help” is a finding the system measures — not one the dataset was built to announce.
Different approaches genuinely differ on this data — by design
08
SECURITY MODEL
AI-generated code is unreviewed code. We treat it as untrusted.
PREFERRED
DockerSandbox
FALLBACK
SubprocessSandbox
VERIFIED
By tests, not claims
The backend is selected automatically, and /system/status always reports which one is live
09
HOW IT IS BUILT
Two services, one source of truth
apps/web
Next.js, TypeScript (strict), Tailwind, React Flow, Recharts
apps/api
FastAPI, Pydantic, SQLAlchemy — routes, orchestrator, agents, sandbox, literature
PostgreSQL
SQLite locally. Every state transition is persisted, so a restarted backend recovers interrupted runs
REST + WebSocket
Agent events stream live; structural changes nudge the client to re-fetch the record
RUN STATE MACHINE
CREATED
RESEARCHING
HYPOTHESIS_GENERATION
EXPERIMENT_DESIGN
CODE_GENERATION
RUNNING
ANALYZING
DECISION
COMPLETED
Threading
The orchestrator runs on a background thread with plain synchronous SQLAlchemy and publishes onto the API loop. No async-DB friction, and the console stays live.
Pause and stop are cooperative — checked at phase boundaries, never killed mid-experiment
10
WATCH IT RUN
A full research run, in about thirteen seconds.
THE DEMO
Fixed budget
Three experiments, the standard depth preset
Deterministic data
The shipped network flow dataset, seed-stable
Offline reasoning
Deterministic agent strategies; no API key needed
Real execution
The experiments run, and the metrics are measured
WHAT TO CLICK
WHY?
Every PI decision, its evidence and confidence
View Code
The exact generated program, stdout and stderr
Literature
Papers found, with relevance and source
Inject Hypothesis
Add your own; GENESIS tests it next
Real code. Isolated sandbox. Measured results.
Dhruv Gouniyal · Parikshit Dahiya · Sagar Makkar
11
DEPLOYED AND LIVE
Try it live, or read the source.
RUN THE LAB
SOURCE CODE
No sign-up
Demo run in about 13 seconds
Real experiments, measured results
GENESIS · Dhruv Gouniyal, Parikshit Dahiya, Sagar Makkar
12