“Weekly” Update (August 19, 2017)

Hello all,

I have not been very good about keeping up with this blog in the past few weeks. I can come up with any number of excuses, but none of them are particularly valid. I’ve been busy but didn’t push myself to write anything. At any rate, it’s time to pick up the pace. We have two weeks to cover.

Two weeks ago my internship at Tufts VALT ended. I’m overall pretty happy with what I accomplished and how things turned out. I finished the second-to-last day with a call with our project collaborators on the system I built. My biggest takeaway from this experience was probably learning the importance of sustainable code. At the lab I worked, a lot of people cycled through over various summers and left behind a corpus of very valuable but unreadable work due to poor documentation. My past project advisors have been stringent about making sure I document my projects well. It’s much more clear to me now why this is so important.

Earlier that week, I put up a minimal parallax demo. I turned this into a mini jQuery plugin so that I could colorcode the projects on my site. I’ll probably turn this into a proper plugin at a later date so that you can use this technology in your projects.

The week after that, I travelled to Maine for some tourism. We visited Acadia National Park, and I got some nice photos for a generative art project I’m working on.

On the music side, I’ve been preparing a number of pieces for an upcoming audition. I’ve also bought myself a fancy new piece of equipment in the form of Seaboard RISE using literally all my money from the last year. Hopefully I can produce a track or two soon. Look out for those.

This coming week, I hope to resume normal blog posts and to stay more on top of these weekly updates.

That’s all for me.

Weekly Update (August 6, 2017)

Hello again.

I regret to inform that I haven’t posted anything useful in the last week. I’ll try to make this change.

Part of the reason is that I was occupied playing the wonderful, beautiful Pyre. Supergiant has produced two (now three) of my favorite games of all time, so I couldn’t help but finish Pyre as fast as possible.

I got to see Earth, Wind and Fire, with three of the original members performing. That was pretty great!

On the code side, I put up a Jekyll site to house all the demos I’ve been collecting. It’s a nice place to put them together and showcase. You’ll find it hosted on Github pages.

In order to populate the site, I made a fabric simulation and a fluid simulation. This is the first time I’ve managed to get a fabric simulation to work! In the past, when I’ve tried to make spring systems, I’ve gotten really odd results.


I finally discovered that the reason for this was because I had no friction. In theory, this should only cause spring motions to oscillate, but I think rounding error compounded over many frames probably caused the system to go out of control. All I had to do was add a velocity-based damping factor to the differential equation and it worked out.

(I also accidentally discovered a cool effect, and kept it for later use. It’s based on a bug, so here’s a gif in case it gets fixed in the future.)

A tear in spacetime!

The fluid simulation uses cellular automata. I got the algorithm from a Reddit post. I really like the algorithm because it’s extremely elegant. I’ll probably find a way to repurpose it for a later project.

My favorite project this week is probably this parallax demo. It’s a jQuery plugin that generates a parallax-powered mountain scene into an arbitrary element. I’ve put it in the background of some of the page on my website. (If you’re reading this in the future, that link may have changed, and that effect may no longer be live.) I’ll probably work on making the plugin public.

I started working on a project to bring pure math education to the masses, but it’s still in its infantile stages. Expect another update on this soon.

On the lab side, I got the front-end for the collaboration we’re working on to a workable enough point that we’re ready to demo it. We’re meeting with the other group on Thursday to explain how our system can interface with theirs.

That’s all for me.