54,302 blogs · [ { "id": "01a0b68b-4cde-7155-9449-0b423d7867f0", "title": "Matt Keeter", "url": "https://mattkeeter.com", "published_at": "2026-09-07T05:20:44+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6dc4f3a6b", "title": "Testing WebGPU data layouts with Facet", "url": "https://mattkeeter.com/blog/2026-08-23-wgpu-facet", "published_at": "2026-08-23T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6dc67cf04", "title": "Please Steal My Meshing Algorithm Idea", "url": "https://mattkeeter.com/blog/2026-07-03-meshing", "published_at": "2026-07-03T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6dced16ff", "title": "A tail-call interpreter in nightly Rust", "url": "https://mattkeeter.com/blog/2026-04-05-tailcall", "published_at": "2026-04-05T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6dd2efa33", "title": "An x86-64 backend for raven-uxn", "url": "https://mattkeeter.com/blog/2026-03-15-uxn", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6dd41dff5", "title": "zipzap", "url": "https://mattkeeter.com/projects/zipzap", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6de302f43", "title": "Caves of Qud: A review", "url": "https://mattkeeter.com/blog/2025-12-29-qud", "published_at": "2025-12-29T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6de57399f", "title": "Gradients are the new intervals", "url": "https://mattkeeter.com/blog/2025-05-14-gradients", "published_at": "2025-05-14T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6df1a74e2", "title": "A cautionary tale about continuity", "url": "https://mattkeeter.com/blog/2025-04-12-continuity", "published_at": "2025-04-12T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e019b27a", "title": "The Prospero Challenge", "url": "https://mattkeeter.com/projects/prospero", "published_at": "2025-03-24T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e0ddee75", "title": "Guided by the beauty of our test suite", "url": "https://mattkeeter.com/blog/2025-01-20-guided", "published_at": "2025-01-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e1a81a4e", "title": "Fidget", "url": "https://mattkeeter.com/projects/fidget", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e29f173e", "title": "Panic! At the Async Runtime Shutdown", "url": "https://mattkeeter.com/blog/2024-08-01-panic", "published_at": "2024-08-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e2bdc7ec", "title": "Beating the compiler", "url": "https://mattkeeter.com/blog/2024-07-12-interpreter", "published_at": "2024-07-12T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e2c23e51", "title": "Raven", "url": "https://mattkeeter.com/projects/raven", "published_at": "2024-07-04T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e347578f", "title": "It's Free Real Estate", "url": "https://mattkeeter.com/blog/2024-03-25-packing", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e3ccbcc6", "title": "Reverse-engineering the Synacor challenge", "url": "https://mattkeeter.com/blog/2024-01-28-synacor", "published_at": "2024-01-28T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e4baab1b", "title": "Hunting a spooky ethernet driver bug", "url": "https://mattkeeter.com/blog/2023-10-31-dma", "published_at": "2023-10-31T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e53638fa", "title": "Efficiently updating implicit in-order forests", "url": "https://mattkeeter.com/blog/2023-07-03-iforest", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e5508b38", "title": "Machined Aluminum Pen", "url": "https://mattkeeter.com/projects/machined-pen", "published_at": "2023-04-27T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e634d1d9", "title": "A simple adversarial model for dual contouring", "url": "https://mattkeeter.com/blog/2023-04-23-adversarial", "published_at": "2023-04-23T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e6fc6c1e", "title": "Do Not Taunt Happy Fun Branch Predictor", "url": "https://mattkeeter.com/blog/2023-01-25-branch", "published_at": "2023-01-25T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e749be03", "title": "A Neat XOR Trick", "url": "https://mattkeeter.com/blog/2022-12-10-xor", "published_at": "2022-12-10T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e7eac96f", "title": "The Solid-State Register Allocator", "url": "https://mattkeeter.com/blog/2022-10-04-ssra", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e8e29922", "title": "From Oscilloscope to Wireshark: A UDP Story", "url": "https://mattkeeter.com/blog/2022-08-11-udp", "published_at": "2022-08-11T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6e94c469f", "title": "Writing a new XMODEM sender in 2022", "url": "https://mattkeeter.com/blog/2022-05-31-xmodem", "published_at": "2022-05-31T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ea2e5e30", "title": "Super Auto Sim", "url": "https://mattkeeter.com/projects/super", "published_at": "2022-02-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ea89a9cf", "title": "Ray tracing with M-reps", "url": "https://mattkeeter.com/projects/mrep", "published_at": "2022-02-11T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6eb654c40", "title": "Brute-Forcing 22 Trillion Parameters", "url": "https://mattkeeter.com/blog/2021-12-27-brute", "published_at": "2021-12-27T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ebb1cc62", "title": "Every Seattle Store", "url": "https://mattkeeter.com/projects/seattle", "published_at": "2021-10-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ebf9e644", "title": "Foxtrot", "url": "https://mattkeeter.com/projects/foxtrot", "published_at": "2021-06-25T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ec5991ac", "title": "It Can Happen to You", "url": "https://mattkeeter.com/blog/2021-03-01-happen", "published_at": "2021-03-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ec85a789", "title": "rayray", "url": "https://mattkeeter.com/projects/rayray", "published_at": "2021-02-26T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ecb686aa", "title": "Futureproof", "url": "https://mattkeeter.com/projects/futureproof", "published_at": "2020-12-28T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ed1f61d5", "title": "Writing a SIGGRAPH paper (for fun)", "url": "https://mattkeeter.com/projects/siggraph", "published_at": "2020-08-21T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ed541362", "title": "Pont", "url": "https://mattkeeter.com/projects/pont", "published_at": "2020-05-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ed6bcf99", "title": "States Machine", "url": "https://mattkeeter.com/projects/states", "published_at": "2020-02-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ee5a3219", "title": "Program synthesis with Z3", "url": "https://mattkeeter.com/projects/synthesis", "published_at": "2020-01-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ef45a549", "title": "Erizo", "url": "https://mattkeeter.com/projects/erizo", "published_at": "2019-10-06T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ef74bc9f", "title": "Elf Assembly JIT", "url": "https://mattkeeter.com/projects/elfjit", "published_at": "2018-12-23T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6efa92eb2", "title": "Quadratic Error Functions Explainer", "url": "https://mattkeeter.com/projects/qef", "published_at": "2018-11-17T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6eff22e8f", "title": "Moon Jar", "url": "https://mattkeeter.com/projects/moon", "published_at": "2018-09-22T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f0771579", "title": "Tiny Planets", "url": "https://mattkeeter.com/projects/planets", "published_at": "2018-07-04T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f0923a18", "title": "Consistent Ordering of N-Dimensional Neighbors", "url": "https://mattkeeter.com/blog/2018-03-28-neighbors", "published_at": "2018-03-28T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f0ce292b", "title": "Studio", "url": "https://mattkeeter.com/projects/studio", "published_at": "2018-01-06T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f13afe61", "title": "libfive", "url": "https://mattkeeter.com/projects/libfive", "published_at": "2018-01-06T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f156d97e", "title": "Compile-time version strings in CMake", "url": "https://mattkeeter.com/blog/2018-01-06-versioning", "published_at": "2018-01-06T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f16182e9", "title": "QEFs, Eigenvalues, and Normals", "url": "https://mattkeeter.com/blog/2017-11-22-eigen", "published_at": "2017-11-22T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f1af946b", "title": "Finding bounding boxes with interval math", "url": "https://mattkeeter.com/blog/2017-09-29-bounds", "published_at": "2017-09-29T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f1c857f9", "title": "Fixing a soldering iron with 3D printing", "url": "https://mattkeeter.com/blog/2017-09-15-iron", "published_at": "2017-09-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f2c2685f", "title": "3D Rotation Design", "url": "https://mattkeeter.com/projects/rotation", "published_at": "2017-06-22T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f35e83ad", "title": "Zero-crossing logic for robust meshing", "url": "https://mattkeeter.com/blog/2017-05-13-implicit-zeros", "published_at": "2017-05-13T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f37ae7bf", "title": "Higher-order reactive graph programming", "url": "https://mattkeeter.com/blog/2017-03-10-higher", "published_at": "2017-03-10T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f3fe71df", "title": "Lineage of CBA CAD tools", "url": "https://mattkeeter.com/blog/2017-01-09-lineage", "published_at": "2017-01-09T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f483bacd", "title": "Abstraction and instances in graph programming", "url": "https://mattkeeter.com/blog/2016-12-17-instances", "published_at": "2016-12-17T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f4db7d59", "title": "Graphene", "url": "https://mattkeeter.com/projects/graphene", "published_at": "2016-09-06T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f5a52769", "title": "Swingline", "url": "https://mattkeeter.com/projects/swingline", "published_at": "2016-04-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f5cf74e7", "title": "Automatic tracking of bounding boxes", "url": "https://mattkeeter.com/blog/2016-04-10-bbox", "published_at": "2016-04-10T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f6299a10", "title": "Affine coordinates in Ao", "url": "https://mattkeeter.com/blog/2016-03-20-affine", "published_at": "2016-03-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f6ab7471", "title": "Ao", "url": "https://mattkeeter.com/projects/ao", "published_at": "2016-03-19T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f6cbb27f", "title": "DLP Slicer", "url": "https://mattkeeter.com/projects/dlp", "published_at": "2016-03-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f7181e1b", "title": "Representation and JITting of math trees", "url": "https://mattkeeter.com/blog/2016-02-21-jit", "published_at": "2016-02-21T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f7fd9387", "title": "Constraint solver", "url": "https://mattkeeter.com/projects/constraints", "published_at": "2015-10-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f86926a9", "title": "spacewΛr", "url": "https://mattkeeter.com/projects/spacewar", "published_at": "2015-10-13T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f924bbd6", "title": "2D Contouring", "url": "https://mattkeeter.com/projects/contours", "published_at": "2015-09-28T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f9d509a0", "title": "Dataflow Engine", "url": "https://mattkeeter.com/projects/graph", "published_at": "2015-07-31T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6f9e14963", "title": "Antimony", "url": "https://mattkeeter.com/projects/antimony/3", "published_at": "2015-04-02T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fa392f71", "title": "Bumpy", "url": "https://mattkeeter.com/projects/bumpy", "published_at": "2014-12-17T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fa3d6294", "title": "fstl", "url": "https://mattkeeter.com/projects/fstl", "published_at": "2014-03-26T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fa9c60a6", "title": "pixelsim", "url": "https://mattkeeter.com/projects/pixelsim", "published_at": "2013-11-27T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fac6b824", "title": "carvr", "url": "https://mattkeeter.com/projects/carvr", "published_at": "2013-08-27T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fb0f3a6d", "title": "kokopelli", "url": "https://mattkeeter.com/projects/kokopelli", "published_at": "2013-05-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fbb97d4e", "title": "Accelerometer Poi", "url": "https://mattkeeter.com/projects/poi", "published_at": "2013-03-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fbd96a3b", "title": "Arc Reactor & Repulsor", "url": "https://mattkeeter.com/projects/stark", "published_at": "2012-10-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fc5ddd5c", "title": "Simon Game", "url": "https://mattkeeter.com/projects/simon", "published_at": "2012-08-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fd237b7d", "title": "Dual Load Cell ADC", "url": "https://mattkeeter.com/projects/loadamp", "published_at": "2012-06-26T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fda65a7d", "title": "L-System Generation", "url": "https://mattkeeter.com/projects/Lsystem", "published_at": "2012-06-20T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fe608b31", "title": "Rotary Position Sensor", "url": "https://mattkeeter.com/projects/rotary", "published_at": "2012-06-11T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fe958edf", "title": "Polar Pong", "url": "https://mattkeeter.com/projects/pong", "published_at": "2012-06-10T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6feddea16", "title": "Longboard-Riding Robot", "url": "https://mattkeeter.com/projects/underactuated", "published_at": "2012-05-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6fef32e6c", "title": "Website Workflow", "url": "https://mattkeeter.com/projects/webgen", "published_at": "2012-05-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ff6ee08e", "title": "Fab Solver", "url": "https://mattkeeter.com/projects/solver", "published_at": "2012-04-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc6ffd05699", "title": "Fab Boombox", "url": "https://mattkeeter.com/projects/boombox", "published_at": "2011-12-18T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc70036dad7", "title": "Slideclock", "url": "https://mattkeeter.com/projects/slideclock", "published_at": "2011-10-27T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7004870dc", "title": "Playing card case", "url": "https://mattkeeter.com/projects/cards", "published_at": "2011-10-07T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7013acb94", "title": "Multitroids", "url": "https://mattkeeter.com/projects/multitroids", "published_at": "2011-09-15T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7014247e0", "title": "Mandelbrot", "url": "https://mattkeeter.com/projects/mandelbrot", "published_at": "2011-08-08T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc701ddba0e", "title": "Automatic Panorama Generation", "url": "https://mattkeeter.com/projects/arpan", "published_at": "2011-05-03T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc702566f57", "title": "LightQuad", "url": "https://mattkeeter.com/projects/lightquad", "published_at": "2011-04-17T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc703128a2c", "title": "TouchClock", "url": "https://mattkeeter.com/projects/touchclock", "published_at": "2010-12-30T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7036c4ced", "title": "ReRobot", "url": "https://mattkeeter.com/projects/rerobot", "published_at": "2010-09-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc703a85d67", "title": "Mudduino", "url": "https://mattkeeter.com/projects/mudduino", "published_at": "2010-08-02T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7048bc534", "title": "E11 Bot", "url": "https://mattkeeter.com/projects/e11bot", "published_at": "2010-08-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc7050a3c2a", "title": "Flock", "url": "https://mattkeeter.com/projects/flock", "published_at": "2010-06-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc705b7ef28", "title": "Stopwatch ASIC", "url": "https://mattkeeter.com/projects/stopwatch", "published_at": "2010-04-19T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc705bc118e", "title": "Colorful Spectrum Analyzer", "url": "https://mattkeeter.com/projects/spectrum", "published_at": "2009-09-11T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc706546fb3", "title": "Tunes", "url": "https://mattkeeter.com/projects/tunes", "published_at": "2009-05-01T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc706b7376a", "title": "Longboard", "url": "https://mattkeeter.com/projects/longboard", "published_at": "2009-03-09T00:00:00+00:00" }, { "id": "01a07df3-fa3b-72e1-8f2b-5dc70791d954", "title": "Growth", "url": "https://mattkeeter.com/projects/growth", "published_at": "2008-03-08T00:00:00+00:00" } ] posts Claim your blog
Back to Matt Keeter
Blog · corpus.blog/blogs/mattkeeter.com/posts

Matt Keeter

mattkeeter.com

2026

2025

2024

2023

2022

2021

2020

30 May 2020

2019

2018

2017

2016

19 Mar 2016

2015

2014

26 Mar 2014

2013

2012

2011

2010

2009

2008