Create an Account


Crunchy Box

Libraries for Reflection

The Crunchy Collection is a collection of five (it's closer to 16 now. I really have to update this site.) C# libraries that I've been developing in conjunction with some of my other projects.

Crunchy Dough : Mainly just a ton of extension methods for strings, IEnumerables, and reflection types.

Crunchy Salt : Adds FieldInfo and MethodInfo adapter wrappers that generate CIL code as necessary to cut down on dynamic field get/set and method invoke overhead.

Crunchy Noodle : Adds a type/field/method filtering system with query caching among other things. Of particular interest is that it allows for the transparent querying/handling of type extension methods.

Crunchy Ramen : Adds some extension methods specifically for dealing with some more meta-programming things.

Crunchy Ginger : Provides a lightweight .cs file writer.

read more


Philosophical Rogue-Like

It can be argued that language is simply an externalization of thought; a method to simulate the storage of ideas beyond their makers, a method to attempt the transfer of conglomerations of history, emotion, and reasoning between vessels. Under such an argument, works of language exist simply as  masses of organized matter, chaotically patterned. The information, or the meaning, of the language represented by these organizations, is only just that: represented. It is not until these organizations are observed and interpreted that their information exists; however, it would seem only for a  moment, for although we perceive the language, this perceiving is simply a mechanical step in the recreation of the original  idea, after which this language is no longer needed.

Words are not the building blocks of thought, they are the crude outlines of the structures we build of a material entirely different.

From this perspective, words only momentarily exist, in their full capacity, as entities to pass between the border of our physical and mental  realities. This argument frames our mental and physical realities as separate spaces, two spaces that we very much appear to exist and be active  participants within; however, this argument also suggests, as does empirical evidence, that there are conduits between these spaces: we can physically  act on a idea or see something that changes what we think. These implied conduits exist as biological systems that translate information and action between our two realities. This argument extends this concept, saying that language, that is to say words, pass through an additional system before  entering our mental reality.

Perceiving anything within our physical world, is a transfer of electrical impulses, physical forces, physical energy, through our brain. By the conservation of energy, we know that these impulses remain within our physical reality to be used again. Perceiving a word is no different, it is a function of the brain; however, by this argument, in the moment before a word arrives within our mental reality, the word only then truly becomes a word, influencing out mental-scape, but after serving such a purpose this true word would seem to disappear: an entity that no longer exists in either our physical or mental realities.

Where do these words go, our perception of them imbues them with a sort of energy, creating them, and our mental reality simply shapes itself from the form of the word, depleting the word of none of this energy. This process, as it is stated, doesn't explain the disappearance of the word, for what fades from existence when it is in possession of the same level of energy as at its creation? Perhaps there is another reality to which these discarded entities disappear to.

A stack-o-screenshots:

read more

Voodoo Smash Attack Lackey

Inane Chatter Generator

This program is basically a rehashing of a program I made many, many, years ago. The idea behind the original program was basically to, upon a single key press, rapidly generate key stroke events to "type" a sentence produced by an internal template generation system. The main use of this program, obviously, was to generate an inhuman amount of crazy chatter while playing multiplayer games.

Basically, this new version of the program is just an incredibly polished version of the old. Based on the LAMP stack, the generation templates can be collaboratively maintained, and past generations can be inspected, commented upon, and rated in an effort to collate the best collection of generation templates.

Although, originally created as simply a conversation piece, the open nature of the generation system make the program possibly useful in teaching parts of speech.

read more


Nimble Board Game Development and Testing Tool

Made this dude a couple years back to assist a small team in the rapid, and collaborative, creation of board games. BoGa allows users to quickly define, and non-destructively edit, game components based on, and linked to, templates that are created via a custom WYSIWYG editor with a field based inheritance system.Additionally, I implemented a multiplayer interface to allow quick game iteration.

What does it look like? Feast your eyes upon the following Big-Ole Pile of BoGa Screenshots.

read more

The Prune Juice Engine

Precise Object Tracking For Physical Analysis

Behold, The Prune Juice Engine! Originally developed to study the motion of a dampened double pendulum, this sucker has seen some field use, tracking numerous real physical systems and assisting in the development of mathematical models for such. The feature set of this program is fairly extensive, and a lot of it is experimental.

New Features:

  • Now Supports other screen resolutions other than my own really weird tall screen!


  • Automatically tracks light sources within dark environments, usually to ridiculous precision i.e. 0.2 to 0.02 of a pixel.
  • Provides arbitrary coordinate system orientation support, including moving orgins.
  • Allows users to input easily controllable equations to try to match observed motion.
  • Supports 40-ish integration methods for differential equations, including the popular Runge-Kutta 4th Order method, and the insane Runge-Kutta-Dormand-Prince 8th Order method.
  • In program reactive graphing.
  • Support for graphing arbitrary time series, Lissajous curves, Poincare sections, and bifurcation diagrams.
  • Experimental arrbitrary equation fitting.

Additionally, I have been told by my family that the program looks like one of those programs that they show smart people using in movies, so that's a plus.

Note: This dude uses some extra spicy witchcraft to allow native speed evaluation of user inputted equations via JavaCompiler, so the entire JDK is required to run this program not just the JRE.

read more

2 Next