Koval's 3D (Implicit) Grapher
alankoval.com/3dgrapher/src/index.html | GitHub link
Koval's 3D Grapher is a voxel-based, implicit surface and volume plotter in 3D targeted at webgl2.
Triangles embedded in 3D are not well suited for representing sets with "dimension" not equal to two. Furthermore, automatic and efficient triangulation is a significant challenge for a 3D plotter, especially in guaranteed-fail conditions like z = sin(1/x). For this version, we render our plot as binary (i.e. on/off) voxels in a 1024 x 1024 x 1024 grid.
The goal is to produce publication-quality renders of surfaces and volumes in the browser. The rendering uses three-bounce ray tracing with standard light sampling and allows for custom (per voxel) color and normal specification.
Error Propagation Library
This python project implements arbitrary arithmetic on random variables numerically. As a short illustrative example, suppose \(x\) and \(y\) are random variables representing the measurement of two tiles on the floor. We sample \(x\) to be 30.1 cm and \(y\) to be 30.3 cm. Say we use a meter stick which gives some error \(\sigma\) to both measurements. We can model \(x\) as a normal distribution with center at 30.1 and standard deviation \(\sigma\) and \(y\) as a similar distribution centered at 30.3. Then the random variable \(x+y\) gives the probability distribution for the actual combined length of the two tiles.
This library allows arithmetic on arbitrary expressions.
Koval's 3D Grapher (old)
alankoval.com/3dgrapher-old/src/index.html | GitHub link
Koval's 3D Grapher is a WebGL accelerated function plotter in 3D. It has a few features:
- Support for Cartesian, spherical and cylindrical coordinate systems
- Integrated parametric plotting
- Support for vector operations through the Math.js library
- Customizable plot quality, color, and transparency
- Intuitive mouse zoom and rotation mechanics
Pixel Physics
alankoval.com/pixelphysics | GitHub link
Ever wanted to try out your latest cellular automaton idea but don't want to spend the time coding it?
If the answer is yes then you are a total nerd. Luckly so am I, and today's your lucky day. It's not blazing fast but it's a great tool for prototyping.
For some quick eye-candy, click the options button (the gear) and scroll down to the examples pop-down menu.
Brainfuck Interpreter
https://alankoval.com/brainfuck/index.html | GitHub link
Brainfuck is what we call an esoteric programming language. It is aptly named.
You can get some quick (visible) output with the program -[.-]
.
You can pause and step forward and backward while seeing your spot in the code in real time.