https://github.com/saagpatel/signal-noise
An interactive essay teaching Bayesian reasoning through direct manipulation of live visualizations
https://github.com/saagpatel/signal-noise
bayesian d3 data-visualization education interactive-essay nextjs statistics typescript
Last synced: about 10 hours ago
JSON representation
An interactive essay teaching Bayesian reasoning through direct manipulation of live visualizations
- Host: GitHub
- URL: https://github.com/saagpatel/signal-noise
- Owner: saagpatel
- License: mit
- Created: 2026-03-24T11:38:58.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-06-20T05:35:20.000Z (9 days ago)
- Last Synced: 2026-06-20T07:16:06.436Z (9 days ago)
- Topics: bayesian, d3, data-visualization, education, interactive-essay, nextjs, statistics, typescript
- Language: TypeScript
- Homepage: https://signal-and-noise-blush.vercel.app
- Size: 665 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Signal & Noise
[](#) [](#)
> Drag a slider. Update your prior. Watch Bayes' theorem stop being abstract.
Signal & Noise is an interactive essay teaching Bayesian reasoning and probabilistic thinking through seven chapters of live, manipulable visualizations. Second-person narrative. No login. No download. Every concept is something you feel before you calculate.
## Features
- **Seven chapters** — medical diagnostics, radio telescope detection, election modeling, Bayesian belief revision, financial noise, courtroom reasoning, and model convergence
- **Direct manipulation** — every visualization is a live control; drag priors, adjust thresholds, watch posterior distributions update in real time
- **KaTeX equations** — inline math renders client-side without a build step
- **Scroll animations** — Framer Motion reveal animations guide pacing through the narrative
- **Static export** — fully pre-renderable; no server required after `npm run build`
## Quick Start
### Prerequisites
- Node.js 18+
### Installation
```bash
npm install
```
### Usage
```bash
# Development
npm run dev
# Static export
npm run build && npm run start
# Type-check
npm run typecheck
```
## Tech Stack
| Layer | Technology |
|-------|------------|
| Framework | Next.js 14 (static export) |
| Language | TypeScript 5, strict mode |
| Visualization | D3 v7 (math/scales; React owns DOM) |
| Math | KaTeX 0.16 |
| Animation | Framer Motion 11 |
| Styling | Tailwind CSS 3 |
## Architecture
Each chapter is a React Server Component with client islands for interactive visualizations. D3 handles only scales and mathematical transforms — React owns the SVG DOM, preventing the classic D3/React DOM conflict. All seven chapters are statically exported at build time, making the essay hostable on any CDN with zero runtime infrastructure.
## License
MIT