A collection of interactive experiments exploring data visualization, interactive design, and creative coding. Each experiment is a playground for ideas, techniques, and discoveries.
That Lab showcases a variety of data visualizations and interactive experiences built with modern web technologies. The platform features an intuitive navigation system, experiment management with visibility controls, and a beautiful, responsive interface.
-
Women's Football Visualizations: Interactive data visualizations exploring connections between players, their career statistics, and team relationships
- Player Network: Radial visualization showing connections between players
- Player Success & Popularity: Visual representation of trophies, country distribution, and social media popularity
-
Family Tree: Interactive family tree visualization with organic, natural branching patterns
- Explore family relationships and genealogical connections
- Rich data display including dates, places, occupations, and photos
- Zoom and pan navigation
-
Experiment Management: Tag experiments as public, private, or featured
- Private experiments are hidden from searches and listings
- Public experiments appear in searches and can be featured
- Featured experiments appear prominently on the home page
-
Dark/Light Theme: System theme detection with manual toggle
-
Responsive Design: Mobile-first approach with expandable sidebar menu
-
About Page: Learn more about the project
-
Category Organization: Browse experiments by category
- Svelte 5: Modern, reactive UI framework
- D3.js: Data manipulation and SVG-based visualization rendering
- Vite: Fast build tool and development server
- Svelte SPA Router: Client-side routing for navigation
- Font Awesome: Icon set (CC BY 4.0)
- Node.js (v18 or higher)
- npm
npm installnpm run devVisit http://localhost:5173 to view the app.
npm run buildThe built files will be in the dist directory.
npm run previewpublic/data/players.csv: Women's football player network datapublic/data/player-success.csv: Player success and popularity metricspublic/data/family-tree.json: Family tree data structure (JSON format)
Experiments can be tagged with visibility and featured status:
-
Visibility:
public: Visible in searches and category listingsprivate: Hidden from searches and listings (accessible via direct URL)
-
Featured: Public experiments can be marked as featured to appear on the home page
Configure these in src/data/experiments.js.
This project is configured for deployment on Vercel.
- Push your code to GitHub
- Import your repository at vercel.com
- Vercel will automatically detect the Vite configuration from
vercel.json - Set environment variables (required for collaborative writing feature):
- Go to Settings → Environment Variables
- Add
VITE_SUPABASE_URL(your Supabase project URL) - Add
VITE_SUPABASE_ANON_KEY(your Supabase anon/public key) - Add
SUPABASE_SERVICE_ROLE_KEY(your Supabase service role key - server-side only) - Enable for Production, Preview, and Development environments
- Redeploy after setting variables
- Deploy with one click
Future pushes to the main branch will automatically trigger deployments.
📖 See VERCEL_DEPLOYMENT.md for detailed deployment instructions.
├── public/
│ └── data/ # Data files (CSV and JSON)
├── src/
│ ├── components/ # Reusable Svelte components
│ ├── data/ # Experiment definitions and metadata
│ ├── routes/ # Route components (pages)
│ ├── stores/ # Svelte stores (theme, etc.)
│ ├── utils/ # Helper functions and utilities
│ └── visualizations/ # D3.js visualization components
└── dist/ # Production build output
Current version: 1.0.0