This webpage lists some of the personal projects I've worked on recently. This is me: ![Me](http://www.movss.com/~rich/images/me.png) ---- # WebChess (June 2015) http://www.movss.com/~rich/chess/ Client-side Java chess engine. Play against the computer AI in your browser. The engine was compiled to JavaScript from Java using the [GWT framework][gwt]. ![WebChess](http://www.movss.com/~rich/images/chess.png) ---- # ShaderTune (May 2015) https://github.com/sigint9/shadertune A tool for analyzing the performance of GLSL shaders. The program was written in C++ and uses the [Khronos reference compiler][glslang] to build a syntax tree from the input source code. The number of operations on each line are counted and hotspots are shown in dark red. <a href="http://www.movss.com/~rich/images/shadertune.png">![ShaderTune](http://www.movss.com/~rich/images/shadertune_small.png)</a> ---- # ShaderCap (May 2015) http://www.movss.com/~rich/shadercap/ A tool to capture GLSL shaders to video. It was written in C++ and uses the Qt library for the GUI. It uses the [VPX library][vpx] for video encoding. ![ShaderCap](http://www.movss.com/~rich/images/shadercap.png) ---- # GLSL Java Parser (April 2015) https://github.com/sigint9/glslparser/blob/master/glsl.jj A parser grammar for the GLSL language using the [JavaCC][javacc] parser generator, implemented according to the [GLSL specification][glslspec]. ![OpenGL Logo](http://www.movss.com/~rich/images/opengl.jpg) ---- # Symbolic Equation Solver (May 2014) http://www.movss.com/~rich/jsolve/ Client-side symbolic equation solver written in Java and compiled to JavaScript using the [GWT framework][gwt]. The input equation is parsed into a tree, then tree manipulations are performed to rearrange and solve the equation. I documented the solving algorithm and made slides for a presentation which can be found [here][jsolve]. ![JSolve](http://www.movss.com/~rich/images/jsolve.png) ---- # Big Integer Library (December 2013) https://github.com/sigint9/bignum A C++ library for performing arbitrary sized, signed, integer arithmetic. Also implemented are RSA encryption test vectors to prove the correctness and efficiency of the code. ![Division](http://www.movss.com/~rich/images/bignum.jpg) ---- # Pixel Shaders and Computer Graphics https://www.shadertoy.com/user/dila I enjoy writing pixel shaders and experimenting with fractals and procedural geometry. In the past I was interested in software rasterization, and implemented a FPS-style 3D environment (see [C++ source-code][polysynth]). <a href="https://www.shadertoy.com/view/MlsGRS">![Cypher](http://www.movss.com/~rich/images/shader.png)</a> [me]:http://www.movss.com/~rich/me.png [gwt]:http://www.gwtproject.org/ [glslang]:https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ [vpx]:http://www.webmproject.org/ [glslspec]:https://www.opengl.org/registry/doc/GLSLangSpec.4.40.pdf [javacc]:https://javacc.java.net/ [jsolve]:http://www.movss.com/~rich/jsolve.pdf [polysynth]:https://github.com/sigint9/polysynth