# nikhil-vytla/hatch architecture

> Architecture diagram of the GitHub repository nikhil-vytla/hatch, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nikhil-vytla/hatch
- Repository: https://github.com/nikhil-vytla/hatch

## Overview

Hatch is a collection of independent, agent-driven experiments rather than one application with a shared user-to-result workflow. Its principal product shape is a set of interactive prototypes and simulations, alongside research and evaluation work and a model-routing/runtime project. The sampled engines demonstrate deterministic domain logic, but excerpts do not establish how most interfaces, services, and engines are wired together; the graph therefore maps meaningful capabilities without implying a unified execution pipeline.

Main entry points: [`jev-experiments/packages/arena/src/checkable/route.ts`](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/packages/arena/src/checkable/route.ts) (Routing exercise), [`jev-experiments/experience-prototypes/src/main.tsx`](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/main.tsx) (Prototype app), [`jev-experiments/experience-prototypes/src/arena/page.tsx`](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/arena/page.tsx) (Arena interface), [`jev-experiments/experience-prototypes/src/live-world-preview.tsx`](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/live-world-preview.tsx) (World previews)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_prototypes["Interactive prototypes"]
  node_web["Prototype app<br/>[main.tsx]"]
  node_wardrobe["Wardrobe experience<br/>[wardrobe.tsx]"]
  node_music["Music arranger<br/>[music-arranger.tsx]"]
  node_arena["Arena interface<br/>[page.tsx]"]
end

subgraph group_worlds["Live worlds"]
  node_crowd["Crowd simulation<br/>[engine.ts]"]
  node_ghost["Ghost brush<br/>[engine.ts]"]
  node_tetris["Tetris simulation<br/>[engine.ts]"]
  node_worldui["World previews"]
end

subgraph group_routing["Routing runtime"]
  node_router["Task router<br/>[router.ts]"]
  node_policy["Routing policy<br/>[policy.ts]"]
  node_classifier["Task classifier<br/>[classifier.ts]"]
  node_executor["Destination executor<br/>[execute.ts]"]
  node_runtime["Decision runtime<br/>[execute.ts]"]
end

subgraph group_research["Research and evaluation"]
  node_arena_data["Arena data<br/>[build.ts]"]
  node_arena_route["Routing exercise<br/>[route.ts]"]
  node_reliability["Judgment reliability<br/>[analyze.ts]"]
  node_rewardbench["Reward benchmark<br/>[run.ts]"]
  node_eval_pipeline["Agent evaluation<br/>[pipeline.py]"]
end

subgraph group_engines["Experiment engines"]
  node_cafe_engine["Cafe decision engine<br/>[engine.ts]"]
  node_music_engine["Composition engine<br/>[engine.ts]"]
  node_materials["Materials sandbox<br/>[engine.ts]"]
  node_arcade["Arcade rules<br/>[engine.ts]"]
end

node_researcher(("Experimenter"))

node_researcher -->|"explores"| node_web
node_researcher -->|"explores"| node_arena
node_researcher -->|"explores"| node_worldui
node_researcher -->|"solves"| node_arena_route
node_arena_route -->|"uses generated items"| node_arena_data

click node_web "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/main.tsx"
click node_wardrobe "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/wardrobe.tsx"
click node_music "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/music-arranger.tsx"
click node_arena "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/arena/page.tsx"
click node_crowd "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/crowd/engine.ts"
click node_ghost "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/ghost-brush/engine.ts"
click node_tetris "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/tetris/engine.ts"
click node_worldui "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/live-world-preview.tsx"
click node_router "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/router.ts"
click node_policy "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/policy.ts"
click node_classifier "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/classifier.ts"
click node_executor "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/execute.ts"
click node_runtime "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/runtime/execute.ts"
click node_arena_data "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/packages/arena/src/data/build.ts"
click node_arena_route "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/packages/arena/src/checkable/route.ts"
click node_reliability "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/judgment-reliability/analyze.ts"
click node_rewardbench "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/rewardbench2/run.ts"
click node_eval_pipeline "https://github.com/nikhil-vytla/hatch/blob/main/meta-agent-eval-system/eval/pipeline.py"
click node_cafe_engine "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/cafe-jev/engine.ts"
click node_music_engine "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/music-arranger-v2/engine.ts"
click node_materials "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/materials/engine.ts"
click node_arcade "https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/local-models-and-games/arcade/engine.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_wardrobe,node_music,node_arena toneBlue
class node_crowd,node_ghost,node_tetris,node_worldui toneAmber
class node_router,node_policy,node_classifier,node_executor,node_runtime toneMint
class node_arena_data,node_arena_route,node_reliability,node_rewardbench,node_eval_pipeline toneRose
class node_cafe_engine,node_music_engine,node_materials,node_arcade,node_researcher toneIndigo
```

## Components

### Interactive prototypes

- [Prototype app](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/main.tsx): `jev-experiments/experience-prototypes/src/main.tsx`
- [Wardrobe experience](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/wardrobe.tsx): `jev-experiments/experience-prototypes/src/wardrobe.tsx`
- [Music arranger](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/music-arranger.tsx): `jev-experiments/experience-prototypes/src/music-arranger.tsx`
- [Arena interface](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/arena/page.tsx): `jev-experiments/experience-prototypes/src/arena/page.tsx`

### Live worlds

- [Crowd simulation](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/crowd/engine.ts): `jev-experiments/live-worlds/crowd/engine.ts`
- [Ghost brush](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/ghost-brush/engine.ts): `jev-experiments/live-worlds/ghost-brush/engine.ts`
- [Tetris simulation](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/live-worlds/tetris/engine.ts): `jev-experiments/live-worlds/tetris/engine.ts`
- [World previews](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/experience-prototypes/src/live-world-preview.tsx): `jev-experiments/experience-prototypes/src/live-world-preview.tsx`

### Routing runtime

- [Task router](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/router.ts): `jev-experiments/roadmap/routing/router.ts`
- [Routing policy](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/policy.ts): `jev-experiments/roadmap/routing/policy.ts`
- [Task classifier](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/classifier.ts): `jev-experiments/roadmap/routing/classifier.ts`
- [Destination executor](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/routing/execute.ts): `jev-experiments/roadmap/routing/execute.ts`
- [Decision runtime](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/runtime/execute.ts): `jev-experiments/roadmap/runtime/execute.ts`

### Research and evaluation

- [Arena data](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/packages/arena/src/data/build.ts): `jev-experiments/packages/arena/src/data/build.ts`
- [Routing exercise](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/packages/arena/src/checkable/route.ts): `jev-experiments/packages/arena/src/checkable/route.ts`
- [Judgment reliability](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/judgment-reliability/analyze.ts): `jev-experiments/judgment-reliability/analyze.ts`
- [Reward benchmark](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/rewardbench2/run.ts): `jev-experiments/rewardbench2/run.ts`
- [Agent evaluation](https://github.com/nikhil-vytla/hatch/blob/main/meta-agent-eval-system/eval/pipeline.py): `meta-agent-eval-system/eval/pipeline.py`

### Experiment engines

- [Cafe decision engine](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/cafe-jev/engine.ts): `jev-experiments/cafe-jev/engine.ts`
- [Composition engine](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/music-arranger-v2/engine.ts): `jev-experiments/music-arranger-v2/engine.ts`
- [Materials sandbox](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/roadmap/materials/engine.ts): `jev-experiments/roadmap/materials/engine.ts`
- [Arcade rules](https://github.com/nikhil-vytla/hatch/blob/main/jev-experiments/local-models-and-games/arcade/engine.ts): `jev-experiments/local-models-and-games/arcade/engine.ts`

### Other components

- **Experimenter**

## Connections

- Experimenter → Prototype app: explores
- Experimenter → Arena interface: explores
- Experimenter → World previews: explores
- Experimenter → Routing exercise: solves
- Routing exercise → Arena data: uses generated items
