Slash dev Slash Boone

Davis_death_star
Small_quake-champions-ranger

Just got back from SIGGRAPH 2018 and had a blast. After doing contracting and being free to pursue my side project with more fervor I'm ready to jump back into a role somewhere where I can make a meaningful contribution towards tech that I'm passionate about. I'm currently over at Turn10 as Gameplay Dev for the team which has been a cool experience.

I've started a for fun project trying to make a quake compatible FPS engine using Vulkan and Haskell. After working in C++ and OpenGL/CL quite a bit recently I'm tempted to go with modern C++ as its really maturing into a pretty cool high level language with efficient low level constructs as needed. I'm pretty excited for C++20 Concepts and Metaclasses. However... I've long held an intuition about Haskell that I think would be fun to test. I think pursuing this project in Haskell will lead to a very clear / concise and flexible playground for future modifications / interests such as playing around with ML and the AI of different monsters or doing a quick AR render of a map to interact with. Its a big undertaking but I'm excited to play around in that area on something both a little ridiculous and pretty interesting.

On the personal front, I've lost 20lbs and have 15 more to go, but the progress has been satisfying. I'm super excited to finally have a Monster Hunter on PC, that game is unique among the MMO-likes and truly enjoyable if you haven't played it. I'm also very happy to see the return of more traditional FPS games in the form of Quake Champions and good old crpgs. The only genre I really yearn for a newer take on is the RTS one. Warcraft III will forever be king it seems.

I've started playing around with creating playful techno tracks and I hope next time I updated this blog I will have explored writing, backpacking, music, and tabletop RPGs more fully.

Having had some time to grow laterally and pour some energy into what were relegated to side projects I'm super excited for whatever the next leg of this journey will be!

Small_423da24e090a6060c524bc1b203efbb5--cieli-grand-canyon

Its been a long time since I've updated this blog and a lot has happened. I just left a role as Platform Team Lead at Motiga where i worked on Gigantic.

I've had more awesome experience there than any other place I've worked and I cannot sum it up in a blog post. It was a great to work with such a passionate and skilled group of game developers and there was some awesome tech there that I got to help build. While there I had the honor of leading a team of 7 talented engineers.

I left the project as the time seemed right to pursue an Augmented and Virtual reality platform I've been milling around on in the background for quite a few years now. It became clear that as a side project it was never going to get the legs it needs and the tech, ecosystem and hype seems right to secure funding with some serious competitors starting to pop up in early stages.

During this time I've taken up contracting again and have gotten some awesome contracts to start! The next 8 months or so will be spend doing a hard dive on getting a POC to market to investors for the augmented reality start-up with a group of friends as well as contracting for some great projects.

I've taken the first chunk of down time to decompress from my role at Motiga as well as get caught up on some graphics tech Vulkan and get caught up on some whitepapers demonstrated at SIGGRAPH as well as some on AI.

The contracts I've started out with include and awesome R&D role with Lightstream Animations and an undisclosed partner to help visualize a new form of breast cancer medical imaging using OpenGL and C++. The project was first explored in Unreal and Unity but their pipeline did not offer the flexibility required. I have also started helping out rhytons with their java based back-end and iOS / Web client which is a really interesting project utilizing IoT devices!

Seattle is as awesome as always and my good friends Ronnie and Nicole tied the knot in vegas recently! I feel optimistic about the upcoming venture and trial that is getting a new start-up off the ground and welcome the challenges / look forward to developing and realizing a new piece of technology for society to use!

Small_rivers-free-river-707398

I've still been enjoying Seattle and the sights the city has to offer, and am as always, coding away in spare time.

I spent a good chunk of the last year just really digging into breadth knowledge in languages / areas including C#, F#, did some iOS programming, looked through all of iOS 7, checked out new shiny parts of the latest android version, looked harder at Haskell with relation to Parallelism, went through and studied objective-c, checked out go, Got up to date on the latest OpenGL / OpenCL spec implementations and brushed back up on recent happenings in real time graphics.

At the end of that list I was much less biased towards any programming paradigm or type of language or specific platform than I've ever been. I had a long list of ideas accumulating of things i was passionate about trying and then a bunch of tech i had my hands on and it seemed like a good time to try to run with something new.

What I settled on were a couple core things I really wanted to experiment with and all of them needed a really performant, scaleable web component that would be able to run in a browser, on iOS, and Android but take advantage of the aspects of those devices hardware fully. (location services, OpenGL, Camera, Accelerometers etc) Its Impossible to provide a good performant app on all devices and platforms, that doesn't destroy a users battery life or drive them insane or interrupt how they are used to using their device etc without a native application for their platform. So trying to do everything through a web UI with special sites / styles for mobile was out of the question.

Having worked with big and small, distributed and centralized, simple and complex web application using Python, Ruby I knew there were some easy options there. I really wanted to see what i could do by pushing websocket communications and python / ruby aren't very performant for lots of simultaneous open connections. so I started looking around at other languages / frameworks. It was a fun search, in the end what I was considering was Node.js or Cowboy. Looking at number of active held open sockets each could sustain and in general what an application looked like in each of them Cowboy / Erlang blew Node out of the water.

I ended up choosing a stack that had Cowboy as its main backend. Angular for the web front end with AMD style script injection using RequireJs to lazy load logic / libraries. OpenGL ES on mobile and WebGL (for now through three.js but with eyes on moving towards a straight GLContext) Native apps for Android / iOS and then websockets for communication everywhere. I went with 0mq as a socket / networking library in both the erlang pieces and iOS / Android apps. I've been running with these things and using Docker Containers to deploy to wherever and develop along with gruntjs to automate compilation / unit tests and specs / documentation generation for most of the pieces and it has been going great!

I'm happy to see that another of Carmack's predictions about computer gaming and graphics has come true. He said a while back that one of the next big steps real time graphics will take is in using Volumetric textures to store more lighting information. Lately people have been using Spherical Harmonics and 3d Textures to provide better real time global illumination solutions!

On a less technical note, life has been great. I've managed to hold a few D&D sessions at work, i recently discovered the Aeropress which makes the best coffee, I still get time to learn some more guitar / ocarina every once in a while, my pet bird Kirby continues to grow to be a great companion, and Seattle's Nature / Culture never disappoint.

A very good friend from College Liam Thompson passed away a couple weeks ago and with his passing this world lost a wonderful human being. I can't think of another person I've met whose affected me in the same way he has. His life will be missed. Everything he did in the time he had is something i'm sure he's proud of and brings him joy as he did to everyone who knew him.

Small_owl

Well, another big gap in-between posts. A lot has happened life-wise, I have ben working with Linden Labs and moved up to Seattle! I'm now living out of a nice studio up in Capitol Hill and I'm loving the city!

Most of my time has been taken up with the move and exploring hiking trails and parts of the city but things havent completely stopped growing. Part of the reason there has been such a time lapse in posts is because I have been upgrading this site! I wanted to convert it over to ember.js.

I got most of the way through porting and also started writing some custom ember-data types to handle storing and retrieving files and pictures through the ember REST adapter. Then i realized that the library was just too unstable and my site too funky to do it all in one step, so I decided i had a pretty solid grasp of ember and dropped the idea of a port of the site in favor of a massive amount of clean up. This site is now up to date with the latest version of rails, fully doc'd, has some 530 unit / feature tests and the posts can now interpret markdown. The haml and sass are brought more into this century and the site is ready to be much more agile and grow / expand as I do. You can find the code here

Speaking of growth, while I was working with Luma Pictures They asked me for a good package and environment variable tool that never got made. Once I moved I decided to prototype something that does what they need in Bash, partly to force myself to learn bash, partly to have a system to keep / share / improve my bash scripts with, and party to prove that it could be done in bash natively, quickly, and cleanly. The project ended up growing in features and I'm pretty happy with the current state, here is general documentation about it and here is the VFX use case it was trying to solve.

The config file format needs some clean up and it would be nice to have a central distribution / sharing system for the modules but I put a hard stop on the project after 2-3 weeks.

At Linden (and a bit in my own time) I have been working more with WebGL and Angular.js The personal project I'm doing with this is still under wraps and I can't talk about what I'm doing related to it at linden but I'm very happy to be able to spend some work time on OpenGL in any form. I have also been looking at erlang and go Erlang is no Haskell but its a fun language to work and both are cool languages for web work. Hopefully there will be some posts about some WebGL prototypes in the near future.

In my travels I ran across this really cool site shadertoy and found out that now with WebGL more stable its getting pretty fun to play with and there is a Javascript / WebGL demoscene forming! :)

In other news, the sights and sounds Seattle has to offer are awesome, I'm loving the nature around here and the character in the city. I've also started teaching / playing around with playing celtic melodies / jigs on the ocarina and have gotten back into fiddling around with acoustic guitar. I got a new pet Cockatiel named Kirby who's turning out to be a pretty amazing companion! Everythings going great and I'm finally in a place where I have the free time to start ripping into some of these side projects / prototypes.

And start a D&D group or two. D&D Next is a really good compromise between old and new from what I've experienced so far.

Small_screenshottppartio-1024x627

Another couple of weeks with some work, another couple of weeks of learning, another couple of weeks of exploration.

I was fortunate enough to do some more Contract work for Luma Pictures on a particle manipulation library with plugins for Maya, you can find the project page here and my modifications in a fork of the git branch. One of the big things I learned from this endeavor is that I need to separate and organize my commits much more succinctly between groups of changes etc and I've looked up some methods to get better at this in the future. It was also an opportunity to learn Mercurial and set up a Patch Queue re organizing some of my changes.

I've continued my ever growing fandangling with new OpenGL Toys, I'm still in line with setting up a QT based playground for shaders and I now want to grow it into as many test / example shaders as I can, work has been slow on it however, I've been devoting a lot of time to Contract work with Luma and some other surprises life has thrown my way. I've taken an interest to progressive rendering as well as some global illumination models I want to test out once the playground is up.

I've since then started working on a development environment build tool solution for Luma, they pointed me to Rez and Brew, I initially wanted to do gentoo portage-prefix (a cross platform solution of the linux I've known and loved for almost 6 years now). Portage-prefix turned out to be too involved for a production setup though, requiring the whole toolchain to be built from scratch, brew didn't have any acceptable linux port so I've landed on rez and am now looking into writing some packages for maya, nuke, qt, pyqt-maya, pyqt-nuke, sip-maya, sip-nuke, and gcc that correspond with the versions and solutions required.

I've noticed that my blog is not paginated but limited to the first 10 posts, I think its useful to be able to go back through my thoughts throughout college, I'm wary of updating this site until I can move it off of dreamhost (they don't support newer web tech) so it will maintain somewhat of a design / implementation dinosaur for the time being. Throwing a pagination gem in the works shouldn't take much time though.

As far as my personal life goes, my brother has been increasingly struggling with alcoholism and addiction. After two visits to the hospital within a week of each other and 3 days of relapse. It was clear something had to be done. Long story short a couple scuffles and some watchful eyes, he finally made the step to admit himself to rehab last Monday hopefully this sticks. It might seem insensitive of me to blog about this publicly. If theres one thing I've learned form this its that there is no playing around with these problems. My brother is not himself lately and if you know him and are reading this, do not take things lightly, do what you can to nudge him away from all this and back to health. I'm not advocating addiction paranoia but if you have someone you suspect is going down that path, confront them early, seriously, and often, it only gets harder the longer you let things slip by.

To end things on a lighter note, life is good, things are growing, and I've started and am eager to pick things up where I left off! :)

C 2021 Michael Boone