Pangine

history

History

I started Pangine from one intuition: the information, the question, and the answer should be made from the same thing. The idea has been through four versions since 2007.

The first version

The first Pangine, short for Perceptual Analytics Engine, was a C++ engine I wrote in 2007 and 2008. It already had most of today's ideas: Concepts and Percepts, experience that accumulates as evidence, questions with blanks, and decisions. Its grammar used ~ for experience, @ for questions, and ^ for decisions, and in 2008 it learned to play tic-tac-toe. One of its test scripts from 2008:

['test'] ~ {[sky]->[blue]}*{[time]->[day]}*{[weather]->[nice]}
['test'] ~ {[sky]->[black]}*{[time]->[night]}
['test'] ~ {[sky]->[grey]}*{[time]->[day]}*{[weather]->[bad]}
['test'] @ {[sky]->['current']}*{[time]->[day]}*{[weather]->[nice]}
['result'] = ^['current']

The same experiences and question today, which give the same answer, [blue]:

{test} ~= ([sky]->[blue])([time]->[day])([weather]->[nice])
{test} ~= ([sky]->[black])([time]->[night])
{test} ~= ([sky]->[grey])([time]->[day])([weather]->[bad])
{test} @ ([sky]->{current})([time]->[day])([weather]->[nice])
^{current}

Two rewrites

Between 2010 and 2016 I rewrote Pangine twice, each time with a new representation and a new way to weigh evidence. Notes from those years sketched how it could answer questions it had never seen answered whole: by composing parts it had seen separately, or by generalizing from similar cases.

The Rust rewrite and 1.0

In 2026 I rewrote Pangine in Rust. I design the language and experiments and direct coding agents on the implementation. 1.0 finishes the original design: it answers exactly from what it remembers, or with graded answers composed from parts and generalized from similar cases, and every answer keeps its sources. It reads evidence counts as probabilities, chooses or draws among answers, and can divide its memory among partitions without changing an answer.

The demos run it in this browser, including a tic-tac-toe player that learns the way the 2008 one did, now from losses as well as wins.

What stayed the same

Each version replaced the representation and the way evidence is weighed. The loop stayed: experience changes what Pangine remembers, questions expose the possibilities, and a later step chooses among them.