SVG as a UI


SVG as a UI Did you know you can put JavaScript into SVG files? You can use this little technique to make little embeddable Flash like applications that also work as standalone applications. Here is a small example (lightly tested in Firefox and Chrome): Try clicking around in that image above (or use w,a,s,d to move the circle around). If you view that SVG directly => you’ll notice it works just like it does when it’s embedded.

Mastodon; Machine Learning; Mandarin


Mastodon; Machine Learning; Mandarin TL;DR I made a Mastodon bot that uses Tensorflow, Stable Diffusion and Text to Speech to create flashcard like posts to study for the HSK Mandarin Test. Here is an example: => 苹果 Introduction I’ve been studying Mandarin Chinese for quite a while now. Far longer than my ability would dictate. In the past I’ve studied in waves. I’d study for 3 or 4 months, and then I wouldn’t study for a long while - sometimes years.

Fun with Binary Trees


This is another contrived post to test out my interactive coding scripts, and also to test making a d3 tree graph. While this post is probably not going to be enlightening, I hope it is somewhat entertaining. One of my favorite data structures is the binary tree. It’s not the fastest at everything, but it does most things you’d need, and it does them reasonably quickly. If you have a list of things that you need to sort, search, and also insert new items into, a binary tree is not a bad thing to consider.

Using WebXR types in Typescript


I’ve recently taken my hand made type definitions for WebXR (for use in my Mesh Game Engine) and submitted them to DefinitelyTyped (DT). Lazily, I hadn’t switched the game engine over to using the DT version. The definitions just got their first update from a new PR so it seemed like the perfect time to swap over. There were a number of gotchas in doing so, so I thought I’d post about how I got it working and some pitfalls you might run into if you’re into this kind of thing.

Fun with Matrices


This post is a little bit contrived. Since I’ve been playing around with 3D graphics and GPUs, I’ve become fascinated with matrices (and maths in general). On top of that, I’ve been looking for a reason to play with Jupyter Notebooks. I’ve become interested in literate programming as well - it seems like a fantastic teaching tool. So instead of doing what I was supposed to be doing this lovely Saturday, I decided to try to write a super basic (non compatible) version of Jupyter Notebooks for Javascript posts (I call it Kale).

You Don't Need All That JS. Diffy.


I find the simplest solution is often the best one. When it’s not, it’s often on the right path. I’ve been helping a mate try to get his startup running. He is a seasoned (and exclusively) back end engineer who is now thrust into the new 2020 front end world. He hates it. He bemuses, “nothing makes sense and everything is overly complicated.” Humorously timely, there as a video put out by the goto; event: You Really Don’t Need All That JavaScript, I Promise.

Getting Makefiles Working on Windows 10


As you might know from some posts on here, I’ve been getting into 3D programming AR / VR / spatial computing as well as dabbling in machine learning and parallel algorithms using GPUs. For the past few years, I’ve been doing this on hardware from like 2011. I needed an upgrade, and I couldn’t find an offering from Apple that fit the bill. So I’ve had to byte the bullet and leave the Apple ecosystem for the first time since… what… 2003.

WebGl, WebVR, Webcomponents Oh my


Now that I’ve started porting my Javascript game engine to Go, I’ve started using the javascript version for some fun experiments. The first one, you should hopefully see above. It’s the game engine in a webcomponent. I haven’t fully tested it, but it should work in the latest versions of the popular desktop browsers (on recent OSs). I think putting the engine in a webcomponent is an intresting idea. It allows one to basically just do:

Go + OpenGL 2.1 + Shaders + VertexAttribPointer


Wow, that took a while. I decided to port my little JavaScript + WebGL 3d game engine to Go. Everything was going along quite well until I decided to put together a little test renderer to see how it was all shaping up. It’s fun to watch unit tests pass and all, but I wanted to see some 3d on the screen. Go has bindings for OpenGL via cgo, and the library has a few examples of how to use OpenGL with Go.

3d Game Engine Retrospective


NOTE This is a work in progress. Demo links on here depend a lot on your system and video card. But give them a go - you’ll know if they work. I’ve finished some of the key features of my little 3d engine. The list includes Basic Levels, sprites, sounds, and basic interactions between objects. Enough features to build a small game - which, arguably, is the hardest part. I’ve started cutting down my original idea into some much smaller and far less ambitious.