The Kolmogorov complexity K(x) of a string x is the length of the
shortest program that outputs x and halts. It cannot be computed exactly —
that would let a program detect its own shortest description, a contradiction related
to the halting problem. What we can do is approximate it from above: any
compressor that losslessly reproduces x gives an upper bound on K(x),
because "decompressor + compressed data" is itself a program that outputs x.
K(x).The Thue–Morse sequence looks irregular at a glance, yet it is generated by a tiny rule (start with 0; repeatedly append the bitwise complement of the sequence so far). It is a favorite example in algorithmic information theory of a string with low Kolmogorov complexity that nonetheless fails many statistical randomness tests — a reminder that "looks random" and "is high-complexity" are not the same thing.
A 3D bit-grid visualizer that runs a live LZ-style compressor over a generated string, drawing matched repeats as glowing linked runs and building a compressed "program" column beside it — a concrete, watchable upper bound on the string's Kolmogorov complexity.
Kolmogorov complexity K(x) is uncomputable in general, but any lossless compressor gives an upper bound: decompressor + compressed data is itself a program that outputs x. Patterned strings compress far below their raw length; uniformly random strings barely compress at all.
Pick a source pattern, adjust its length and (for repeating motifs) period, then drag in noise to watch compressibility collapse toward incompressible randomness. Matched runs glow cyan and arc back to their first occurrence; unmatched bits stay as plain literal cubes.
The Thue–Morse sequence is generated by a tiny recursive rule yet fails many statistical randomness tests — a classic example that "looks random" and "has high Kolmogorov complexity" are not the same property.