Words and Buttons: mathematics

Interactive explanations of mathematical concepts mostly witten with the practicing programmers in mind.

Can we use lemniscates for ultra-cheap vector graphics?

This depicts an old idea of using multifocal lemniscates to draw arbitrary curves. In somewhat limited scope, this may be indeed an economical alternative to splines.

Bi-whatever transformations

An interactive explanation of how polynomial transformations such as trilinear or biquadratic or even linear-cubic work, and how to craft your own that fits your particular task the best.

Arctangent scale. It's like the logarithmic scale but infinite

An interactive demo of how, with arctangent used as a scale, we can show any function on a screen. And not just a fragment of it but the whole function.

Image darning

A simple image processing algorithm that cleans up dirt stains from aged newspapers. I called it “darning” because of how it works.

Error codes are not numbers. But they are. Can we exploit that?

An interactive explanation of how we can use floating-point NaNs as error code holders in C++.

Honeycomb texture generator

This generates honeycomb textures of a special quasi-irrational form. Explanation included.

Sine and cosine

A pair of interactive mnemonics for sine and cosine. There are also examples of practical usage. Basically, the second half of a tutorial is about how the first half was made.

SWInE: Simplicial Weight Interpolation and Extrapolation

The less known alternative to splines. A localization of Shepard's method on a simplicial complex.

Quadratic splines are useful too

This explains simple quadratic splines, how to craft one yourself, and why.

Circles and lines vs. polynomial splines

An alternative to polynomial splines. Smooth parametric curves made from arcs and line segments.

Yet another floating point tutorial

Most of what you should know about floating point numbers put together in an interactive tutorial with quests and puzzles.

Interactive mnemonics for dot and cross vector products

Just a pair of mnemonics for dot and cross vector products. They present the functions, show how they work, and why one is dot and the other is cross.

Simple image vectorization

This is the example of an image vectorization algorithm. It shows the bilinear interpolation, polynomial approximation, differential analysis, and iterative algorithms working together to solve a practical problem

The simplest possible smooth contouring algorithm

A 3-part smooth contouring algorithm that shows partial derivatives, gradients, and parametric polynomials working together.

Polynomial approximation and interpolation

This explains approximation and interpolation, how to use polynomials for that, and how to make both concepts work together.

Interactive explanation of marching cubes and dual contouring

Marching cubes and dual contouring are often used for mesh generation. This explanation shows how they work, what are their differences, similarities, and limitations.

Programmer's introduction to linear equations

This is an introduction into linear equation systems. This tutorial should give you enough knowledge to use a proper equation solver for your task but not enough to implement one efficiently yourself.

Estimating floating point error the easy way

An interactive explanation of how to measure computational error while working with floating point numbers and why.

NURBS is just an acronym

NURBS stands for the non-uniform rational basis spline. There are three separate concepts. This guide walks you through these concepts one by one.

How much math can you do in 10 lines of Python

An interactive introduction into concise Python / basic linear algebra.

Programmer's guide to polynomials and splines

This is a brief introduction into polynomials. From how to make a polynomial run through your set of points to how to make it into a spline.

Mathematical analysis explained with Python, blood, and TNT

A brief introduction into the differential analysis with a little SymPy on the side.

Interactive introduction to iterative algorithms

An interactive explanation of how iterative algorithms work. This explains convergence and the exit condition problem on an oversimplified linear system solver.

Interactive guide to homogeneous coordinates

This interactive guide shows how homogeneous coordinates actually make geometry simpler and not more complicated. It explains the extra coordinate, the matrices, the generalized transformations. Most of what you need to know about projective geometry as a practicing programmer is here.