Fabric.js, YAML Pipeline & Model Category


I recently posted about the TypeScript changes, but a lot more has happened over the last month. I wasn’t really able to post a full summary until today, so here’s a major recap.

Full Changelog since July

First off, I implemented a new drawing functionality with Fabric.js. This allows users to draw on the screen when Caps is pressed or when the Presentation Mode is accessed. Holding Alt+Shift draws rectangles, while the Mouse Wheel changes the color. Holding Shift alone creates straight lines. It comes with all the usual comforts, such as remembering colors, line thickness, erasing items, and clearing the entire screen.

Fabric JS

I’m really proud of this feature. It works well and will be useful in the coming video illustrations. It essentially has the feel and (a limited) usability similar to the Windows Snipping Tool, with the exception that here we solely draw on an HTML Canvas. At one point I considered extending it with a transparent pen, arrows, and 15-degree line magnets but decided against it. It’s already good as it is.

Fabric JS

Next, I removed plenty of elements for the public version on GitHub. The overlays of Blockchain, Galaxy, Symbol, Battle Royal, and Opposition will only be accessible through the paid version (totally worth it though). I did some jin-jitsu on the deployment pipeline to achieve that and added a Python script that scans for Start & End Markers in HTML & JS files; everything in between those then gets removed.

Selective Removal for Commercial Release

I also updated the YAML to enforce file & folder permissions on the Azure deployed Linux VM. That had become necessary after I restructured the Image Folder System and added a few new files. A couple files & folders were afterward simply not accessible and threw a 403 error until I manually set their permissions to 664 and 755. To prevent that from happening again, there’s now a new item in the pipeline that ensures everything has the correct permissions after deployment.

File/Folder Permissions via Pipeline

I also committed a ton of smaller fixes. Rotation is now decoupled from the Radian display and can be manually switched on/off. I think this is much cleaner and easier to illustrate. I also reworked menu items and icons quite a bit as I need to streamline and simplify more. The message has to come across clearly, and this thing must be ‘pretty’ due to it being clear and easily understandable. So, a lot of clutter had to be removed, but we’re getting there. It’s supposed to be be functional and easy on the eyes.

Rotation

To top things off I got the last major part done, the “Model” itself. It took me a while to figure this stuff out. The naming choosen now might not be optimal and may change later to something better, but I think it’s fine: I introduced the concepts of ‘Domain’ and ‘Flow’ to filter the location-bound items from Basic and Scope in 2-steps down to Cycle, where we’re very precise.

Model Filter

It shows a clear progression from “We’ve got multiple possible locations” to “we’ve got a precise location”. First by the domain, which leads to either the global or local scope. Then by flow, which leads to either the flow towards the center or the flow towards the periphery. Now, this is basically the idea from Heisenberg of Impulse & Location (that ‘uncertainty principle’ stuff) molded into simple terms, and can be explained overcomplicated with derivatives and all sorts of mumbo jumbo but you’ll very likely get the idea when I explain it this way.

Model Location

I think I’ll release this soon. Definitely this year. The Quick-Run-Down introduction video has to come next, but basically, we’ve achieved FEATURE COMPLETE on the WTF Lightweight Theory of Everything with the Model items. I even gave it its own category. I know people are smart in a certain sense, and I really hope they’ll quickly grasp it.

comments powered by Disqus