Place one node. Click "place", leave type on oscillator, and click anywhere on the canvas. You've just created a single artificial neuron. Press play. It hums one tone, alone — it has no connections yet, so nothing is influencing it.
Connect two nodes. Place a second oscillator. Switch to "connect" mode, click the first node, then the second. A line appears between them — that's a weight, the strength of one node's influence over the next. You can drag any node to reposition it at any time.
Change how a node reacts. Before placing, set the "reacts" dropdown: "sharply" snaps a node on or off past a threshold (ReLU), "smoothly" fades it in and out (sigmoid), "both ways" lets it swing in either direction (tanh). This is an activation function — the node's personality. Try the same two-node setup with each one and listen to the difference.
Watch a connection learn. Leave two connected nodes playing and wait without touching anything. If they tend to activate at the same time, their connection will slowly thicken on its own — neurons that fire together, wire together. If they rarely align, the line thins and eventually disappears: the network forgets what it doesn't use.
Try the other node types. Add a timbre node and connect it to an oscillator — it will modulate the filter brightness of whatever it's connected to. Add an LFO node and connect it — it introduces slow vibrato into connected oscillators, audible but not pitched itself.
Step back. Once you have five or six nodes of mixed types connected, stop placing anything and listen for a few minutes. New connections may appear between nodes you never linked — the network notices which of its own parts tend to agree and wires around that spontaneously. This is the start of self-organisation.
Leave it running. The creature in the right panel grows in stages as the network accumulates connections, spontaneous activity, and time. Open another tab, do something else for twenty minutes, and come back — both the soundscape and the creature will have kept changing without you.
Written by Jordan Elias, MT-BC
Above is a small neural network. You build its first few connections by hand, and from there it keeps teaching itself — strengthening some of its own wiring, letting other parts fade, occasionally growing connections you never made. It expresses what it's doing as an ambient soundscape, and as a small creature that develops alongside it. Both are direct readouts of what the network is doing underneath.
What a neural network is
Strip away the mystique and a neural network is a small number of simple ideas, repeated and connected. A node (sometimes called a neuron, after the biological original) is a tiny unit that takes some input, decides how strongly to respond to it, and passes a signal onward. A connection is a link between two nodes, and every connection has a weight — a number that says how much influence one node has over the next. A weight near zero means "I barely affect you." A strong weight means "when I light up, you light up too."
That's most of it. A network's "knowledge" isn't stored anywhere special — it is the pattern of weights between its nodes. Learning, in almost every kind of neural network, just means adjusting those weights over time based on some rule. Different networks use different rules. This one uses one of the oldest and most intuitive, which we'll get to shortly.
There are a few more moving parts worth naming. Nodes are usually organised into layers — an input layer that receives raw data, one or more hidden layers in the middle that do the actual computation, and an output layer that produces a result. In this lab the network is deliberately unstructured (no fixed layers, edges can go in any direction) because that's closer to how biological neural tissue actually organises itself than the tidy layer diagrams you'll find in most textbooks.
Activation function — the rule a node uses to turn its incoming signal into an outgoing one. Without an activation function, stacking nodes together is mathematically equivalent to a single node: no matter how many layers you add, the whole thing collapses into one linear operation. Activation functions introduce non-linearity, which is what allows deep networks to represent complex, curved relationships in data. In this lab, "sharply" (ReLU) means a node stays silent until input crosses a threshold, then switches on. "Smoothly" (sigmoid) fades gradually. "Both ways" (tanh) can swing positive or negative. These are the actual functions used in real neural networks — not approximations.
Activation functions
Each graph below shows what an activation function actually does: it takes a number in (x axis) and produces a number out (y axis). Adjust the slider to change the function's key parameter and watch the curve update. The shape of the curve is the shape of the node's "personality" — how it decides to react to its input.
Notice: ReLU is piecewise linear — zero on the left, straight ramp on the right. Moving the threshold slides the ramp left or right. Sigmoid is an S-curve that squashes any input into the 0–1 range: increasing steepness makes it snap more sharply between off and on. Tanh is a centred version that maps to –1 to +1: scaling it changes how gradually the curve saturates. Each of these shapes has different mathematical properties that affect what kinds of patterns a network using it can learn.
Hebbian learning: the rule this network runs on
In 1949, the psychologist Donald Hebb proposed a simple theory of how the brain might wire itself based on experience, often summarised as "neurons that fire together, wire together." When two connected neurons activate at the same time, the synapse between them strengthens slightly. When they don't activate together, it weakens. Run that rule over and over, across millions of neurons, and you get a brain that is gradually shaped by its own activity — organised by what it does, not what it's told.
That's the literal mechanism driving the network above. Every connection tracks how often the two nodes it links are active at the same moment. Frequent co-activation strengthens the weight; rarity lets it decay; a weight that decays below a threshold is removed outright — the network forgets it, not just visually but structurally. This also mirrors a real and well-documented feature of biological brain development called synaptic pruning: a developing brain trims connections that aren't being used, keeping the active ones and discarding the rest. The adolescent human brain loses roughly half its synaptic connections during this process.
This is worth distinguishing from the kind of learning most associated with AI news today. Large language models and most modern deep networks learn through backpropagation — comparing output against a correct answer and adjusting every weight in the network to reduce that error, repeated over enormous datasets. That method requires a target to optimise toward. There's no "correct" soundscape here, so this network can't use it. Hebbian learning is older, simpler, needs no labels, and produces self-organisation rather than task optimisation. Both are legitimate approaches to building systems that change based on experience; they just answer different questions.
What "mood" is doing
The mood reading reflects how consonant the network's current sound is — roughly, how well the pitches sounding at once agree with each other according to basic psychoacoustic relationships. It isn't just a display. It quietly steers two things: how readily the network forms spontaneous new connections between nodes whose activations have been aligning, and how much it experiments versus settles. Pleasant-sounding states are treated as worth elaborating on; rough patches are allowed to happen — unpredictability is what keeps this interesting over time — but they're nudged to resolve quickly rather than linger. The creature's expression also changes with mood: it watches the same signal you're hearing.
What neural networks are actually used for
The network in this page is tiny and runs on Hebbian self-organisation. Real-world neural networks are usually much larger, trained by backpropagation on labelled data, and applied to specific tasks. Here are some of the domains where they're currently producing significant results — each one is worth understanding both as a technical achievement and as something with real social and ethical implications.
Convolutional networks (CNNs) classify images by learning to detect edges, textures, and shapes across successive layers. Applications include medical imaging (detecting tumours in radiology scans), autonomous driving (identifying pedestrians and lanes), and face recognition systems used in surveillance.
Transformer-based language models process text as sequences of tokens, learning statistical relationships between words across enormous corpora. They underlie machine translation, text summarisation, question answering, and tools like the one that helped build this page.
Collaborative filtering networks model the relationship between users and items (films, songs, products, news articles) to predict what a user will engage with next. These systems shape a significant proportion of the media most people consume daily.
Networks trained on normal behaviour learn to flag deviations. Applications include fraud detection in financial transactions, intrusion detection in network security, and fault prediction in industrial machinery.
AlphaFold2 (DeepMind, 2020) predicted the 3D structures of nearly all known proteins, solving a 50-year open problem in biology. Neural networks are also used in drug discovery, climate modelling, and particle physics to find patterns in data too high-dimensional for conventional methods.
Diffusion models and GANs (generative adversarial networks) learn the statistical distribution of images, audio, or text and can generate new samples indistinguishable from real ones. These underlie AI image generators, voice synthesis, and music generation tools.
The common thread: a neural network is a function approximator. Given enough data and compute, it can learn to approximate almost any mapping from input to output, however complex. What it cannot do, at least not in the way a human does, is reason from first principles about cases it's never seen.
Supervised, unsupervised, and self-supervised learning
Most of the high-profile applications above use supervised learning: a human provides labelled training data (this image is a cat, this transaction is fraudulent, this sentence is in French), and the network learns to reproduce those labels on new inputs. It's powerful but expensive — labelling large datasets is time-consuming and often requires domain expertise.
Unsupervised learning is the attempt to find structure in data without labels. The network isn't told what it's looking for; it discovers patterns in the input distribution on its own. This is closer to what happens in this lab. Some of the most important unsupervised methods include:
- Clustering — grouping similar inputs together without being told the categories. A network might discover that your customer base has three distinct behavioural clusters without anyone having defined those clusters in advance.
- Dimensionality reduction — finding a compact representation of high-dimensional data. Principal component analysis (PCA) is the classical version; autoencoders are the neural network version. Both learn to compress data into a smaller number of meaningful dimensions.
- Density estimation — learning the probability distribution of the training data, so the network can tell you how "normal" a new input is. This underlies both generative models and anomaly detection.
Self-supervised learning is a more recent variant that's become central to large language models: the network creates its own supervisory signal from the structure of the data itself (for example, by masking a word and training the network to predict it from context). This allows training on raw, unlabelled text at internet scale, which is not possible with hand-annotated data.
Hebbian learning, which drives the network on this page, is one of the oldest unsupervised algorithms. It doesn't solve the same problems as modern deep learning methods, but it demonstrates the core idea: a system can find and reinforce structure in its own activity without any external signal telling it what to look for. The network above is finding its own patterns in the co-activation statistics of its nodes. What it does with that — the soundscape that results — is an expression of the structure it has found.
The creature
This network doesn't save itself. It only exists, learns, and grows while this tab is open. The longer you leave it running, even in the background, the more it becomes its own thing.
The small figure in the right-hand panel is a direct readout of the same underlying state, starting as a single cell. As the network accumulates nodes, forms connections, builds spontaneous structure, and stays alive longer, the creature evolves. Its expression changes with the network's mood and responds to new connections.
Get in touch
If you're interested in working together, or if you would like to learn more, please visit the contact page.
Further reading:
- The Organization of Behavior — Donald O. Hebb (1949)
- Deep Learning — Goodfellow, Bengio & Courville (2016, freely available online)
- 3Blue1Brown: "Neural Networks" series on YouTube — the clearest visual explanation available
- Synaptic pruning — developmental neuroscience overview, Nature Reviews Neuroscience
- Music for Airports liner notes — Brian Eno, on generative and ambient music