Websites, tutorials and software which allow you to learn tech and science stuff by experimenting, playing and/or interacting.
- 🟡 - Account needed.
- 🖥️ - Software: not online.
- 🎯 - Game: focus on challenges and puzzles, less on explaining.
- A* Algorithm: Introduction to the A* Algorithm
- A* Algorithm: Circular Obstacle Pathfinding
- A* Algorithm: The Explanation & Comparison of Graph Searches
- A* Algorithm, Dijkstra's Algorithm: A* Search and Dijkstra's Algorithm - A Comparative Analysis
- Algorithms: Algorithm Visualizer
- Algorithms: VisuAlgo
- Autoencoders: An Interactive Introduction to Autoencoders
- Binary Heaps: Binary Heaps visualization
- Blockchain: Blockchain Demo
- Bloom Filters: Bloom Filters
- Bloom Filters: Bloom Filters by Example
- Bloom Filters: Bloom Filters
- Cellular Automata: From Cells to Systems
- Compression: Compression Decompressed
- Concurrency: 🎯 The Deadlock Empire
- Digital Signal Processing: A Compact Primer on Digital Signal Processing
- Floating Point: Float Toy
- Floating Point: IEEE 754 Double Precision Floating Point Visualization
- Generative Adversarial Network (GAN): GAN Lab
- Graph Neural Networks (GNN): A Gentle Introduction to Graph Neural Networks
- Graphs: D3 Graph Theory - Learn graph theory interactively
- Graphs: Graphery
- The Halting Problem: The halting problem - An interactive tutorial
- Hamming(7,4): Hamming Game
- K-means Clustering: K-Means Clustering - An Explorable Explainer
- K-means Clustering & DBSCAN: Clustering Comparison
- Kernel Density Estimation: Kernel density estimation
- L-Systems: Lindenmayer systems
- Lexing: Rebuilding Babel: The Tokenizer
- Machine Learning: Machine Learning Crash Course
- Machine Learning: The Learning Machine: Machine Learning
- Machine Learning: Why Some Models Leak Data
- Machine Learning: Datasets Have Worldviews
- Markov Chains: Markov Chains
- Myers Diff Algorithm: Myers Diff Algorithm - Code & Interactive Visualization
- Natural Language Processing (NLP): What Have Language Models Learned?
- Neural Networks: Neural Networks from Scratch
- Neural Networks: Four Experiments in Handwriting with a Neural Network
- Numerical Optimization: An Interactive Tutorial on Numerical Optimization
- Quadtrees: An interactive explanation of quadtrees
- Recursion: Computer Science Circles - Recursion
- Reinforcement Learning: Reinforcement Learning - A Gentle Introduction To Learning From Decisions
- RSA: Public-Key Encryption by RSA Algorithm
- SHA256: Sha256 Algorithm Explained
- Simulated Annealing: Visualizing Simulated Annealing
- Sliding Window: The Sliding Window Pattern
- State Machines (DFAs): 🎯 FiniteStates
- Traveling Salesman: Traveling Salesman Algorithms
- Turing Machines: Turing Machine Visualization
- Virtual Memory: Virtual Memory With 256 Bytes of RAM - Interactive Demo
- Zero Knowledge: 🎯 zk treasure hunt
- Algorithm Wiki
- Conflict Driven Clause Learning
- What is Code?
- Tic-Tac-Toe Bots
- Angular: Intro to Angular
- APL: TryAPL
- Assembly: iRISC
- Assembly (6502): Easy 6502
- Assembly: 🎯 BOX-256
- Assembly: 🎯 Projekt: Overflow - RISC-V assembly board game
- AWK: Basic awk: An interactive introduction to awk and Intermediate awk: An interactive guide to AWK's arrays and loops
- AWK: Data exploration with awk
- Clojure: Try Clojure
- Clojure: Learn Clojure with Shapes
- Clojure: Tetris in ClojureScript
- Digital Logic: Nandgame
- Digital Logic: Arithmetic in Computer Hardware
- Digital Logic: 🎯 Digital Logic Design (The Game)
- Digital Logic: Turing Trains
- Forth: Easy Forth
- Haskell: Try Haskell
- Java/Kotlin: Learn CS Online
- JavaScript: 🎯 Untrusted
- JavaScript: Eloquent JavaScript
- JavaScript: 🎯 Elevator Saga
- JavaScript: 🎯 BitBurner
- JavaSCript: JavaScript DOM Tutorials
- Lambda Calculus: What is Lambda Calculus?
- Lambda Calculus: Mikrokosmos - Programming on the Lambda-calculus
- Lambda Calculus: Lambda Explorer
- Lean: 🎯 Lean Game Server
- Perl: Try Perl - learn the basics of the Perl language in your browser
- Programming, LISP: Structure and Interpretation of Computer Programs - Interactive Version 1
- Programming, Processing: The Nature of Code
- Programming Language Implementation: - How to make interesting little languages 1
- Python: Futurecoder
- Python: 🎯 The Python Challenge
- Python: Inside python dict - an explorable explanation
- Python: Think Python - Devetry Edition
- Python: Inside python dict - an explorable explanation
- React: Intro to React
- Regular Expressions: RegexLearn
- Regular Expressions: 🟡 🎯 Regex Crossword
- Regular Expressions: 🎯 Regex Golf
- Ruby: TryRuby - Learn programming with Ruby
- Ruby: RubyMonk - Interactive Ruby tutorials
- Scala: A Tour of Scala
- Scheme: Interactive overview of Scheme's semantics
- Scheme: (learn 'scheme) - A Complete Environment for Learning Lisp
- SQL: SQLZOO
- SQL: SQLBolt
- SQL: Select Star SQL
- SQL: 🎯 Lost at SQL
- The Lost Ways of Programming: Commodore 64 BASIC
- Bezier Curves: Animated Bezier Curves
- Bezier Curves: A Primer on Bezier Curves
- Bezier Curves: 🎯 The Bezier Game
- Collision Detection: Collision Detection: Circle vs. Box
- Collision Detection: Collision Detection: Circle vs. Line
- Collision Detection: Gilbert-Johnson-Keerthi Distance Algorithm
- Edge Detection: Stepping Into the Filter - Understanding the Edge Detection Algorithms in Your Smartphone
- Colors: An interactive guide to color & contrast
- Image Kernels: Image Kernels
- JPEG: Unraveling the JPEG
- Lerping: Animation Code. Part 1: Lerping
- Misc: Curves and Surfaces
- Noise: Making maps with noise functions
- Pixel Art: 2 Pixel Art Tutorials
- Shaders: The Book of Shaders
- Shaders: Fragment Foundry
- Shaders: A Journey Into Shaders
- Shaders: 🖥️ 🎯 Shaderoo
- SVG: SVG Tutorial
- SVG: SSSVG: Interactive SVG Reference
- SVG: A Deep Dive Into SVG Path Commands
- Line drawing on a grid
- Circle fill on a grid
- Complex Analysis: Complex analysis - A Visual and Interactive Introduction
- Complex Numbers: Simple Numbers
- Degrees & Radians: https://mathigon.org/course/circles/radians
- Eigenvectors, Eigenvalues: Eigenvectors and Eigenvalues
- Eigenvectors, Eigenvalues: Interactive Visualization of Why Eigenvectors Matter
- Fourier Transforms: An Interactive Introduction to Fourier Transforms
- Fourier Transforms: The Fourier Transform - An Interactive Guide
- Fourth Dimension: Interactive 4D Handbook
- Fractals: Understanding the Mandelbrot Fractal
- Fractals: The Hitchhiker's Guide to the Mandelbrot Set
- Geometry: 🎯 Eeuclidea
- Linear Algebra: Immersive linear algebra
- Linear Algebra: inVectorize
- Linear Algebra: Invitation to Another Dimension
- Linear Algebra: The Learning Machine: Linear Algebra
- Logic: The Incredible Proof Machine
- Matrix: The Matrix Arcade
- Modal Logic: Modal Logic Playground
- PI, Monte Carlo: Mathe Carlo - An exploration and explanation of the Monte Carlo method
- PI, Monte Carlo: Using Monte Carlo to Estimate Pi
- Rotors: Let's remove duaternions from every 3D Engine
- Trigonometry: Trigonometry for Games
- Trigonometry: Sine and Cosine
- Trigonometry: The Etymology of Trig Functions
- Vectors: Basics of Vector Math
- WebGL/GLSL: WebGL & GLS - A Primer
- Mathigon
- Geogebra
- The Natural Number Game
- BASH (shell): 🖥️ 🎯 Bashcrawl
- Docker: 🟡 Play with Docker Classroom
- *Fish shell: Fish shell playground
- Git: 🖥️ 🎯 Oh My Git!
- Git: Learn Git Branching
- Git: Visualizing Git Concepts with D3
- Git: Git for Beginners
- jq: JSON wrangling with jq
- jq: The Ultimate Interactive JQ Guide
- Linux: 🟡 Linuxzoo
- Linux: 🎯 Command Challenge
- Linux, command line: 🖥️ 🎯 The Command Line Murders
- Linux, filesystem: What is a filesystem?
- Linux, troubleshooting: 🎯 SadServers
- Linux/Unix: 🎯 The Unix Game
- Markdown: Markdown Tutorial
- Markdown: Markdown Tutorial
- PostgreSQL: Postgres Tutorials
- SystemD: SystemD by example
- Vim: Open Vim
- Vim: 🎯 🖥️ PacVim
- Vim: 🎯 Vim Racer
- X Window System: Explanations
- CSS: 🎯 CSS Diner
- DNS: Mess with dns
- Email: SPF, DKIM, DMARC: Learn and Test DMARC
- Linux, security: 🎯 OverTheWire
- Networks, Security: 🟡 🎯 Netsim
- Security: 🎯 Web Application Exploits and Defenses
- Security: 🎯 OWASP Juice Shop
- SQL Injection 🎯 SQL-Insekten
- Troubleshooting: 🎯 https://mysteries.wizardzines.com
- Web Design: 2 Web Design in 4 minutes
- XSS: 🎯 XSS Game
- XSS: 🎯 XSS game
- XSS: 🎯 Alert(1) to win
- Web Audio: Web Audio School
- Wizard's Guide to Statistics
- Adventures in Cognitive Biases
- Seeing Theory - A visual introduction to probability and statistics
- Binary Hypothesis Test: Binary Hypothesis Test
- Birthday Paradox: The Birthday Paradox Experiment
- Causal Inference: An Interactive Introduction to Causal Inference
- Conditional Probability: Conditional probability
- Distributions: Probability Distributions
- Gaussian Process: Interactive Gaussian Process Visualization
- Kelly Criterion: The Kelly criterion: How to size bets
- Maximum Likelihood: Understanding Maximum Likelihood - An Interactive Visualization
- Simpson's Paradox: Simpson's paradox
- Standard Error: Standard error of the mean
- T-test: An interactive explanation of the statistical t-test used to compare sample means
- Taxicab Problem: The Taxi-cab Problem
- Complex Sysytems: What is Complexity Science?
- Entropy: Entropy Explained, With Sheep
- GPS: https://ciechanow.ski/gps/
- Special Relativity: Exploring Special Relativity
- Waves: Waves: An Interactive Tutorial
- Waves: Sound: Let's learn about Waveforms
- Explorable Physics
- oPhysics: Interactive Physics Simulations
- Inside Einstein's head - An explorable explanation of relativistic spacetime
- Why Do Astronauts Float in Space?
- Gears
- Game Theory: The Evolution of Trust
- Game Theory: Game Theory
- Politics: District - A puzzle game about gerrymandering & proportional representation
- Politics: Polling: Rock 'n Poll - Polls explained with interactive graphics
- Signal Detection Theory: d'etectable - An Explorable Explanation of Signal Detection Theory
- The Wisdom and/or Madness of Crowds
- Parable of the Polygons - An interactive story about how we divide ourselves, from the bottom up
- Hooked: how pokies are designed to be addictive
- Bits & Bytes: Memory Spy
- Cryptocurrency: 2 How Crypto-currency Works
- Computer Science: Computer Science Field Guide
- Design: Learn the logic of great typography - An interactive type tutorial
- Economics: Supply & Demand - An interactive explainer, from first principles
- Economics: EconGraphs - Intuitive interactive visualizations of key concepts in economics
- Economics: Banking: 🎯 Sim CB - Sim Central Bank, Explanation
- Games: Platformer Toolkit - Interactive video essay on movement in platform games.
- GitHub Actions: GitHub Actions Hero
- Math, Physics, Chemistry, etc: PhET
- Math, Signals Processing, Algorithms: Visualizations on Statistics and Signal Processing
- Math, Physics, Etc: Visualize It
- Math, Physics, Etc: falstad.com
- Misc: Wolfram Demonstrations Project
- Music: How Music Works - Interactive Music Theory Lessons
- Philosphy: History of Philosophy - Summarized & Visualized
- Physics, Statistics: Data Visualizations & Animations
- Prompt Engineering: 🎯 GPT Trick Golf
- Quantum Computing: 🎯 The Cubit Game
- Reverse Engineering: 🎯 Microcorruption - Embedded Security CTF
- Statistics, Signal Processing: Visualizations on Statistics and Signal Processing
- Trusted Platform Module (TPM): TPM-JS