Chinese Checkers
An AI player using minimax search with hand-tuned heuristics, so strong it's extremely hard for a human to beat. Windows GUI in Borland C++ Builder.
I've been building things since I was twelve, when I started writing (and selling) software for teaching astronomy and physics. Here are some of the side projects I've built for fun and curiosity over the years. Most are still downloadable, with their original write-ups.
Free tools that apply the risk analysis professional investors use, such as volatility, drawdowns, correlation, and risk-adjusted return, to any stock or ETF. Part of QuantCommons, my evenings-and-weekends quantitative investing initiative.
The first version of the same idea: quantitative insights on performance, risk, and diversification for stock and crypto investors, alongside the book I wrote for their members.
A mash-up of Google and Yahoo search results, built during my PhD in the early days of web mash-ups. BusinessWeek featured it in "Sampling the Web's Best Mash-Ups" (July 2005), ABC7 picked it as one of the top three fun and useful sites of the week, and the Associated Press and search and tech sites across the US and Europe covered it.
An AI player using minimax search with hand-tuned heuristics, so strong it's extremely hard for a human to beat. Windows GUI in Borland C++ Builder.
Written during a technical festival at IIT Delhi, with a strong computer opponent. The folder also has a Minesweeper and a Knight's Tour solver.
The classic game rewritten in OpenGL, with rendered 3D models, enemies with AI, and satellite-guided missiles.
Evolving an intelligent ant with genetic algorithms, a Fibonacci heap, randomized selection, and the fast Fourier transform for fast polynomial arithmetic.
A polygon-based 3D rendering and animation framework in Java, with a gallery of rendered scenes and animated movies.
Morphing, JPEG encoding, fractal image compression, and spatial and frequency-domain filters, each with a write-up and results.
A simple scripting layer for generating Flash animations at runtime, built to animate algorithms on the web without a Flash editor. Samples include quicksort and depth-first search.
A graph algorithms workbench with a mouse-driven GUI I wrote from scratch in DOS.
A hardware-level, pipelined SPARC processor simulator and assembler in Visual C++, with hazard and forwarding examples.
A linear programming solver implementing the simplex algorithm, with exact fraction arithmetic.
A visual MAC-layer simulator for studying optimal resource utilization in VSAT satellite networks.
An animated visualization of the segment-based path protection algorithms from my award-winning B.Tech thesis.
A Java tool for visualizing and analyzing embedded system platforms and bindings. Report
VHDL code and a Xilinx schematic for a hardware network switch, plus digital hardware design lecture notes I wrote in HTML.
A Go-Back-N protocol simulation, queuing theory simulations, and a TCP client and server.
Programs for generating and analyzing self-similar and heavy-tailed traffic, from a network dynamics course.
Patterns, a synthetic parallel benchmark that generates deadlock-free communication schedules for meshes, toroids, hypercubes, and trees (patterns.tgz), and a P2P gossip protocol simulator (sim.tar.gz). More in Research.
Solutions for developing large-scale distributed e-government applications with IBM Content Manager. Report
Competed in algorithm and programming contests through school and college, for the quick thinking and the adrenaline, including the ACM ICPC World Finals in Vancouver in 2001.
Problems, rankings, and my team's solutions from Bitwise, an algorithm-intensive online contest. Solutions · C++ code book
What's the smallest calendar program you can write? My answer fits on one line.
Everything from the original project folders, including source code, executables, data, and course write-ups, is kept here as it was.