:  ####      #     ####   ######  #####   ###### :
: #          #    #    #  #       #    #  #      :
:  ####      #    #       #####   #    #  #####  :
:      #     #    #  ###  #       #####   #      :
:      #     #    #    #  #       #       #      :
:  ####      #     ####   #       #       ###### :

Hello and welcome to the web site of Dan Piponi
.

Robotics and Electronics
Dual Scanning Laser Camera
How to read the other side of a playing card using Helmholtz Duality.
StirFry
Simple autonomous robot.
Equibot
My second autonomous robot.
OddJob
My third autonomous robot.
Quadrature encoder in a servo.
Computer on a Chip
Project to build a simple computer on an FPGA. (Runs at around 25MHz, 1K RAM, VGA output.)
Physics
Quantum Computing
Intro to quantum computing. Years old now.
Cosmic Ray Detection
How to view cosmic ray paths for under $30.
Not the Crackpot Files
Some idiosyncratic physicists.
Mathematics
On the Visualisation of Differential Forms
A way of understanding differential forms and the exterior derivative.
Computer Science
Coalgebras and Automata
A piece of literate Haskell demonstrating some aspects of F-algebras and F-coalgebras, especially their applications to automata.
Some snippets of Haskell code.
Some pieces of code, mostly based around my small formal power series library. Work in progress.
Some Notes on the Abstraction Penalty for IA86 C++ Compilers
Which IA86 compiler generates the fastest code? You might be surprised by my conclusion...
Polynomial Template Library
This will eventually become a library for Gröbner basis manipulation. Check out the code for proving the existence of grammatically correct poetry with a given number of syllables.
On the Differentiation of Datatypes
A brief introduction to the algebra and calculus of datatypes. Surprisingly differential calculus can be used to derive datatypes that serve a role similar to that of pointers..
A Compiler For a Pure Lazy Functional Language: SASL
SASL is a simple functional language implemented here via combinatgory reduction.
C++ Templates and Turing Completeness
C++ compilers are Turing complete. I don't mean the programs you can write, I mean the compiler itself.
Implementation of a Pure Lazy Functional Language as a C++ Metaprogram
If C++ compilers are Turing complete you can implement a language with them. Here's a lazy functional one.
Continuations in C
Continuations are a powerful feature of programming languages such as Scheme. But you can do something similar in C.
Function Objects in C++
True closures are missing from C++, but you can achieve a similar effect with C++ objects and templates.
Open Source Software
wmtop
A CPU meter for Windowmaker
Dots and Boxes
You may recognise this game for PalmOS from your childhood.
Other Software
Hexplode
An old game I originally typed in out of a magazine for the BBC Micro. Now for PalmOS.
Publications
Automatic Differentiation, C++ Templates and Photogrammetry
This is a paper soon to be published in The Journal of Graphics Tools.
Seamless texture mapping of subdivision surfaces by model pelting and texture blending
From SIGGRAPH 2000
Universal Capture
From "The Matrix Revealed" at SIGGRAPH 2003
Other
Movie Credits
An Academy Award
My Music Collection
My Text Adventure Game Collection