Software is simply the encoding of human thought, and as such has an almost unbounded design space.
This page contains programs, both projects and demonstrations, which I
have either worked on or plan on working on in the future.
- ray tracer — ray
tracing is a rendering technique for generating an image by tracing the
path of light as pixels in an image plane and simulating the effects of
its encounters with virtual objects.
- shell — a user interface
for access to an operating system's services.
- operating system —
system software that manages computer hardware and software resources
and provides common services for computer programs.
- markov chain bot
— a bot that takes advantage of Markov chains for computing
responses to incoming messages. A Markov chain is a stochastic model
describing a sequence of possible events in which the probability of
each event depends only on the state attained in the previous event.
- irc client — an
application used to communicate via IRC networks.
- interpreter — a
computer program that directly executes, i.e. performs,
instructions written in a programming or scripting language, without
requiring them previously to have been compiled into a machine language
- compiler — computer
software that transforms computer code written in one programming
language (the source language) into another programming language (the
- chess player — an
artifically intelligent chess player.
- bittorrent client —
an application intended for use with the bittorrent protocol.
- ASM calculator — a
calculator written in x64 Assembly.