Why can’t you design noise in frequency space?
The python code that goes along with this blog post can be found at To evaluate the quality of a blue noise texture, you can analyze it in frequency space by taking a discrete Fourier transform. Wh…
The latest blog posts to take off on Hacker News. 163 posts.
The python code that goes along with this blog post can be found at To evaluate the quality of a blue noise texture, you can analyze it in frequency space by taking a discrete Fourier transform. Wh…
This comes from a question posed to me and others in 2019 by Stefan Langerman, a computational geometer who also happens to be a diamond dealer. The classic ...
Materials from our SIGGRAPH '20 paper.
How Graphs & Games Untangled "The Golden Hairball": A technical deep dive from the end credits experts at Endcrawl.
A good scientist, in other words, does not merely ignore conventional wisdom, but makes a special effort to break it. Scientists go looking for trouble. — Paul Graham, What You Can’t Sa…
Introduction to quaternions and rotations in 3D.
I have to tell you about the Kalman filter, because what it does is pretty damn amazing.
<meta http-equiv=
Problem: Show that all horses are of the same color. “Solution”: We will show, by induction, that for any set of $ n$ horses, every horse in that set has the same color. Suppose $ n=1$, this is obviously true. Now suppose for all sets of $ n$ horses, every horse in the set has the same color. Consider any set $ H$ of…
Updates: Our open letter made the WSJ, and has been tweeted by Matt Yglesias and others. See also Boaz Barak’s thread, and a supportive tweet from Rep. Ro Khanna (D-Silicon Valley). If you…
I’ve supervised a lot of great student projects in my nine years at MIT, but my inner nerdy teenager has never been as personally delighted by a project as it is right now. To…
Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...
Cutting-edge cyber security research from NCC Group. Find public reports, technical advisories, analyses, & other novel insights from our global experts.
The intended audience for this article is undergrad students who already have a good grasp of Java, or seasoned Java developers who would like to explore an in-depth analysis of various hash table implementations that use Open Addressing. The reader should be familiar with Java generics, collections, basic data…
You might have heard people say that functional programming is more academic, and real engineering is done in imperative style. I’m going to show you that real engineering is functional, and …
Lagrange multipliers are used in multivariable calculus to find maxima and minima of a function subject to constraints (like "find the highest elevation along the given path" or "minimize the cost of materials for a box enclosing a given volume"). It's a useful technique, but all too often it is poorly taught and…
TL;DR: How to reason about people who are smarter than you. A few proposals, interspersed with reinforcement learning and humorous fiction. Ending on a surprising connection to logical inductors.
Most of us learn how to write technical articles by osmosis. After reading a hundred or so papers, we unconsciously pick up the common patterns of the field and begin to imitate them. This phenomenon is largely beneficial, but there are several truly odious habits that are almost universally and inadvertently adopted…
I posted on When did Math get so hard? a commenter pointed out that one can also ask When did Computer Science Theory Get so Hard? For t...
R is the response to selection, S is the selection differential, and h 2 is the narrow-sense heritability. This is the workhorse equation for quantitative genetics. The selective differential S, is the difference between the population average and the average of the parental population (some subset of the total…
Babylonian accountants and land surveyors did their arithmetic in base 60, presumably because sexagesimal numbers help with wrangling fractions. When you organize things in groups of 60, you can divide them into halves, thirds, fourths, fifths, sixths, tenths, twelfths, fifteenths, twentieths, thirtieths, and…
If vector multiplication were invertible, we could treat vectors just like any other variable. We could do simple algebra like:
Reflections on the Summer of Math Exposition
Andrej has invited me to write about certain surprising functional programs. The first program, due to Ulrich Berger (1990), performs exhaustive search over the “ Cantor space ” of infinite sequences of binary digits. I have included references at the end. A weak form of exhaustive search amounts to checking whether…
We describe a set of very unusual dice, and a two player game where you will always have the advantage. You can even teach your opponent how the game works, yet still win again! Finally, we will describe a new game for three players where you can expect to beat both players at the same time! Watch James Grime and…
An edge case in integer safety.
All original material on the geometry.org website is Copyright (C) 1999–2025, Alan U. Kennington.