Bookmarks

A cabinet of curiosities from around the web: tools, papers, demos, datasets, and ideas I want to find again.

Programming practice

C++

Recipes

Linear Algebra

Optimization

Sorting

Nearest-neighbors

Spatial geometry

Data containers

Units

Python

Package Management

Type Checking

  • mypy - the original and most widely adopted Python type checker; strict mode, plugin ecosystem, incremental checking; de facto standard for CI enforcement
  • Pyright - fast, accurate type checker from Microsoft written in TypeScript; powers Pylance in VS Code; strict mode goes further than mypy in several areas; excellent for large codebases
  • Pylance - VS Code language server built on Pyright; adds IntelliSense, auto-imports, and semantic highlighting on top of Pyright’s type engine
  • Pyrefly - new type checker from Meta written in Rust; aims for extreme speed on very large monorepos; still maturing but very fast incremental analysis. Used in the PyTorch repo internally.
  • Ruff - primarily a linter/formatter, but enforces many type-annotation style rules and is the fastest option for catching annotation anti-patterns at lint time

Configuration Management

Core Array & Math

  • NumPy - foundational N-dimensional array library; the lingua franca for numerical Python
  • SciPy - algorithms built on NumPy: optimization, integration, interpolation, signal processing, linear algebra, statistics
  • SymPy - symbolic mathematics (CAS) in pure Python

DataFrames

  • Pandas - the classic DataFrame library; row-oriented, index-centric, mature ecosystem
  • Polars - fast DataFrame library written in Rust; lazy evaluation, Apache Arrow columnar memory, excellent for large datasets
  • cuDF (RAPIDS) - GPU-accelerated DataFrames with a pandas-compatible API
  • cuDF-powered Polars
  • Ibis

Linear Algebra & Array Backends

  • CuPy - NumPy/SciPy-compatible array library running on CUDA GPUs
  • JAX - NumPy on accelerators (CPU/GPU/TPU) with automatic differentiation and JIT via XLA; popular in ML research
  • Dask - parallel and out-of-core computing; scales NumPy/Pandas workflows to clusters or large-memory machines

Machine Learning & Deep Learning

Visualization

Graphs & Networks

  • NetworkX - creation, manipulation, and analysis of complex networks and graphs in pure Python

Optimization

  • CVXPY - modeling language for convex optimization; write problems in natural mathematical form
  • PICOS - high-level interface to conic and integer optimization solvers
  • MOSEK - commercial solver for LP, QP, SOCP, SDP, and mixed-integer problems (free academic license)
  • Gurobi - state-of-the-art commercial solver for LP, MIP, and QP (free academic license)

Control & Simulation

  • python-control - the Python Control Systems Library; classical and modern control analysis and design
  • PyBullet - physics simulation for robotics, games, visual effects, and machine learning
  • MuJoCo - fast physics engine for robotics, biomechanics, graphics, animation, and ML (open-sourced by DeepMind)

Reinforcement Learning

  • Spinning Up in Deep RL - OpenAI’s educational resource for learning deep RL, with clean algorithm implementations
  • Ray RLlib - scalable, production-grade RL on top of Ray; pairs with Tune for distributed hyperparameter search
  • CleanRL - single-file, high-quality RL implementations prized for readability and reproducibility
  • Dopamine - Google’s research framework for fast prototyping of RL algorithms
  • ReAgent - Meta’s end-to-end platform for applied RL (formerly Horizon)
  • Imitation

Large-scale Computation Frameworks

Specialized Packages

MATLAB

Optimization

  • CVX - disciplined convex programming; model problems in natural mathematical form
  • YALMIP - modeling layer for optimization in MATLAB; broad solver support and LMI/SOS tooling
  • SOSTOOLS - sum-of-squares polynomial optimization toolbox
  • SeDuMi - linear/quadratic/semidefinite cone solver for MATLAB and Octave
  • MOSEK - commercial solver for LP, QP, SOCP, SDP, and mixed-integer problems (free academic license)
  • Gurobi - state-of-the-art commercial solver for LP, MIP, and QP (free academic license)

Control

Machine Learning

Julia

Programming

  • Julia - high-level, high-performance language for technical computing; solves the two-language problem
  • Julia for VS Code - the official IDE experience

Numerical & Scientific Computing

  • LinearAlgebra - dense and sparse linear algebra in the standard library
  • Graphs.jl - optimized graph creation and analysis (successor to the archived LightGraphs.jl), with the JuliaGraphs ecosystem:

Optimization

Plots & Visualization

  • Plots.jl - unified plotting API with swappable backends (GR, PyPlot, PlotlyJS, UnicodePlots)
  • StatsPlots.jl - statistical plotting recipes built on Plots.jl
  • GraphPlot.jl - layout-based graph visualization
  • GraphRecipes.jl - graph drawing recipes for Plots.jl
  • TikzGraphs.jl - publication-quality graph layouts via TikZ
  • Colors.jl - color spaces, color maps, and color manipulation
  • LaTeXStrings.jl - LaTeX-rendered strings for plot labels and annotations

Data Storage

  • FileIO.jl - unified load/save dispatch across many file formats
  • JLD2.jl - save and load arbitrary Julia data in an HDF5-compatible, pure-Julia format

Software Integration

  • MATLAB.jl - call MATLAB from Julia through the MATLAB Engine (requires a MATLAB installation)
  • PyCall.jl - call Python functions and libraries directly from Julia
  • Conda.jl - manage a private Conda/Python environment for Julia, pairs with PyCall.jl

Language interoperability

C++ / Python Interoperability

  • pybind11 - seamless operability between C++11 and Python
  • nanobind - small, efficient C++/Python bindings (successor to pybind11)
  • SWIG - connects C/C++ programs with many scripting languages
  • Cython - optimising static compiler for Python and the Cython language
  • Codon - high-performance, zero-overhead, extensible Python compiler
  • PyPy - fast, compliant implementation of Python with a JIT compiler
  • Numba - JIT compiler that translates Python/NumPy code to fast machine code
  • EigenPy - exposes Eigen types and NumPy arrays between C++ and Python

Trajectory optimization

iLQR / DDP

trajax

Other solvers

ALTRO (Augmented Lagrangian Trajectory Optimizer)

MPPI

MuJoCo MPC

judo

hydrax

MPC Toolkits

Benchmarks & datasets

System Identification

  • Nonlinear Benchmark - curated, well-documented experimental datasets for nonlinear system identification (Silverbox, Wiener–Hammerstein, cascaded tanks, EMPS, and more)

Environments

  • Gymnasium - the standard API and reference environments for single-agent RL; maintained by the Farama Foundation as the successor to OpenAI Gym
  • Safety-Gymnasium - unified safe-RL benchmark with safety-critical tasks and standardized cost metrics (PKU-Alignment); the maintained successor to OpenAI’s Safety Gym
  • RoboNet - large-scale, multi-robot video dataset for robot learning (UC Berkeley, Stanford, UPenn, CMU); also available via TensorFlow Datasets
  • Flow - RL framework for autonomous-vehicle traffic control built on the SUMO traffic simulator (UC Berkeley)
  • Eclipse SUMO - microscopic, multi-modal traffic simulation suite (German Aerospace Center); a standard backend for multi-agent and transportation RL

Reference Implementations

  • Stable-Baselines3 - reliable PyTorch implementations of standard RL algorithms; the maintained successor to OpenAI Baselines

Autonomous Driving

Pathfinding

Machine Learning

Developer tools

Computation & Exploration

  • WolframAlpha - computational knowledge engine; symbolic math, units, and instant answers
  • TensorFlow Playground - interactive, in-browser visualization of how neural networks learn

Application Frameworks

Command Line

Developer Tools

Presentation

Plotting & Visualization

  • Desmos - fast, elegant 2D graphing calculator
  • GeoGebra - interactive 2D/3D geometry, algebra, and plotting
  • Phase plane plotter - plots phase portraits for nonlinear systems with two states

Robotics Education

  • Duckietown - inexpensive, open platform for hands-on autonomy and self-driving education

Autonomous driving

Safety evaluation

Robotics

Motion planning

Optimization

Solvers

Methods

Assignment problems

Control applications

Machine learning

Kernel machines

Transformers

Feature engineering and selection

Clustering

Dimensionality reduction

Data selection

Extreme classification

Reinforcement learning

Foundation models

Visual computing

Computer vision

Image processing

Computer graphics

Software

Programming languages

Application frameworks

Tabular data tools

UX & Front-end

Programming puzzles

Productivity tools

GPU computing

C++ performance

Data formats

High-performance computing

Time series

Clustering

Classification

Forecasting

Signal processing

Mathematics

Statistics

Decision making

Visualization

Urban design

Transportation

Game design

Geospatial data

Music and culture

Engineering

Mechanical engineering

Transportation and logistics