Uphouseworks

/

Software Research & Development

A brief blog about software and projects.

April 22nd, 2020

Banter

A data visualization tool for observing the underlying structure of data in an agnostic fashion. This version is the 5th iteration of a tool that I wrote back in 2014, and his come a long way since. I have always had an interest in visualizing problems, and in particular being able to visualize the way computer software works. The general idea of Banter was to produce a mapping of software so that a visual understanding could be created in an otherwise opaque system. Specific categories of files (images, machine code, compressed data, tables, strings, etc.) can be seen and comprehended purely by visual pattern alone.

I always have fun popping open things to see how they work inside, and Banter was a way for me to perform this in a digital field as well. There were numerous interesting observations I have made over the years playing around with this tool, and it has helped to give me a better understanding of the underlying structure of software (especially the same software but for different systems). I believe I will come back to this concept later on, but apply it in a more specific context, as there is not practical application I can think of at the moment. Research into software and program visualization has been done in the past, and has had issues as well weak adoption in practical applications. I still believe there is something more to be discovered in this field, but I believe it will take some more time, and a slightly different perspective.

March 30th, 2020

Fractal Brownian Motion

I was playing around with fractal brownian motion (fbm) as a form of generating computer graphics noise. I implemented a terrain generator based off of fbm for land, water, and clouds. The generation of the land as a heightmap from the resulting values came out quite nice, and I was able to generate fairly decent types of terrain in OpenGL Shader Language. The approach I used allowed me to perform nearly all of the generation for the terrain in shaders, along with the water and clouds. The water itself was also an interesting experiment, which was a simple sin wave modifed with a light dash of fbm to give it an uneven wavey texture. The results here were quite surprising in terms of quality, and this is something I will certainly look into down the road.


The clouds themselves were implemented using fbm as well, but were generated using volumetric ray casting. This technique allows a ray to be cast through a solid surface, computing the fbm values as the ray moves through the surface. The result is calculated dynamically, and as the eye position changes, the resulting values computed by the rays change as well. To the viewer it then appears that a solid surface (such as a cube) is in fact a volume of clouds. Adding a slight adjustment with regards to time and a flowing volume of clouds was completed.

Mar 30th, 2020

Blind Search in Pacman

Various search algorithms that I implemented on a simple HTML5 implementation of Pacman. I was interested in seeing how various heuristic search techniques would compare against uninformed search approaches. What was interesting is how quickly a breadth first search can finish a level of Pacman, even if it runs through lives rather quickly. Even if it doesn't play as optimally as would be disired, it still plays better than most humans. In addition, there may be some interesting follow up research with regards to how longevity and survival can factor into using search on Pacman.

March 8th, 2017

HTJSON

While experimenting with verifying the structure of HTML (from Metatest and Sitecheck before), I went ahead and spent some time to write up a simple parser in php. This can go through most HTML and convert it into json, which can then be worked on by other programs. The plan was to utilize this as a step in later building and processing websites as JSON, and then decoding them back into HTML, but I decided to leave it at this.

2017

Working on Parse

After Parse went open source, we had already been using their php SDK for some time at Axolsoft, and we had to figure how to handle the migration. Over time I ended up working more on the sdk itself, contributing to it, and eventually taking it on as a project of my own. It was definitely a lot of fun fixing bugs, introducing features, managing PRs, and bringing the test suite up to spec.

July 14th, 2016

Latria

A small programming language that I wrote some time ago. Based heavily off of Lua, and a means by which to test some theories and ideas of developing a simple language.

2016

SiteCheck

An old app that I wrote that was an iOS version of the online Metatest tool I had written before.

2016

Metatest

A web based tool for testing metatag integration on websites. Verified and checked for proper integration of third party tags to enhance posting and sharing on twitter and facebook. The primary means was a test to apply some complex regexes to attempt to parse HTML, which being inherently irregular needed some programming around it to handle some odd cases. Inadvertently, this also turned out to be a handy approach towards verifying the structure of an HTML document.

January 2016

Hangman Azul

After Bit Shooter I wanted to see what it would be like to create an entire application interface purely in OpenGL. This was probably one of my favorite applications that I built, one which created a fully dynamic interface for a Hangman game. In addition, it gave me an excuse to play around with implementing some bluetooth networking code, and it ended up working out quite well. Creating the animation of the letter tray at the bottom was really pretty neat too.

2015

Axolsoft

Started working at a new business called Axolsoft as the Head Software Engineer. The majority of my work was programmer-centric, involving developing a set of internal tools, several online portals, and when possible automating any standardized procedures.

2014

Floidia

A simple soundboard application, made up of the leftover components from developing BitShooter. Long since defunct now.

2013

Bit Shooter

The first game that I ever wrote for Android in early 2013. Utilized OpenGL, and was eventually written across to iOS as well.