9 August 2026
Come a long way since I last posted on this feed. This was also the first time I started out the design in figma and then later implemented it in html/css. There's still some refining to do in terms of UI I think, I'm not totally happy with it.
BUT. I think it looks great and works really well and I'm happy it's almost done :)
I'm thinking for this one I'm going to embed a tutorial as a startup sequence for users loggin in for the first time. I don't usually do this but I think I should start caring more about UX and Usability.
See more9 August 2026
Connected it to Are.na so images can be hosted there. Also Are.na's new API lets you store key value pairs on blocks as metadata. Using this to store socket data on the block.
See more25 June 2026
Saw this blog post earlier today, and now I'm thinking the next step for the node based + publication tool is to be transplanted into a spreadsheet like interface. After all, spreadsheets have proven to be the most successful interface for spatial end-user programming (and i think that is what I'm after).
In this scenario the mechanisms of the [node based] will still stay the same, but instead of connecting wires to reference another node or creating a flow of data, it would be location references. Same as spreadsheets, eg. e4, b8.
When a node is dragged from a position to another, it will also update all its references to its new location.
The components width will be set in -> cols and rows. This component is 3 cols and 4 rows, etc. The values in pixels will be a dependant value on the sum of the rows and cols. The rows + cols can be resized and that would change the pixel size of the components that exist on that axis.
See more9 June 2026
To multi select, move, rename, delete, etc. Create an action queue, review, edit and execute.
See more22 May 2026
Looks like I have an RSS Feed now!
~ thanks to → issue ~ weeewooo!
It's still pretty buggy and I don't know how exactly should the content of this website translate to the RSS.
For instance should I leave the videos and images in? I don't know... right now I just embed the entire post as CDATA (which allows you to embed html in the description) but some readers render the posts with video funny... so I added a style tag that limits the width of the video to 500px.
See more13 May 2026
Lots happened over the past 2 months. I been in the shop making, tinkering, designing and fabricating. Prepped for gradex (undergrad final year show) and exhibited for 4 days! it was so quite fun, equally taxing.
Will be posting some updates on whats been happening over the past two months because I wanna document it here.
Till then, here's a compiled video of all the books I've been making using the publication tools:
See more
27 March 2026
Playing around with quad trees
connected it to this typesetting tool that leaks words as the textboxes are moved around. The residue generates the quad trees.
See more
9 March 2026
Working on a folding typeface. Here's how the interface lookin!
Print out long strips of paper with measurements
23 February 2026
Changed the theme and rewrote the implementation for the svg lines that connect the nodes together. This was a gigantic performance boost. The way I had set it up before was that for each mutation on any of the lines would re-render every single one of those lines. Not only that, it was also leaking memory because all the old svg line elements weren't correctly disposed. Anyways all that is fixed now and memory is at a steady 20-30mb.
Functions work now! This was a funky exercise to figure out how to make work. But they work now!
A function declaration node will follow all the nodes it connects to till it finds a return node. Then it will create a virtual system for all the tracked nodes and export it as a function closure. Whenever this function is applied, it will just use that function and see what data flows into the return node and just return that data.
See more22 February 2026
I wanna turn this website into an RSS Feed. Essentially anything I want to publish would be here, including stuff over at writing.a-p.space and other stuff.
I will be posting on instagram, and I've mentioned some thoughts about that before over here . But finally what I've finally come to decide is to post monthly, so first week of every month, a recap of the previous month. And instead of fitting media to Instagram constraints, I will be posting screenshots and screen-recordings from elsewhere on the web. As if to say, "If you want the full picture get out of Instagram, look at stuff outside the platform". I would obviously prefer not to engage with it at all, but I feel like I need some exposure for my work on that platform, and without which I may struggle to find work. But I'm not sure if this is true, but again I would rather err on the safer side.
Anyways. My primary posting would be here on the feed, and for those interested can subscribe to the RSS.
See more19 February 2026
I wanted to play around with this stuff:
So I implemented a basic low res version for it
See more
18 February 2026
Submitted the first whittling assignment! This was soooooo fun!!!
1 February 2026
What I seem to figure out is how are loops and functions going to work...
This is one way I'm thinking of setting it up. This may take place as a group looking thing. The group will be a node that outputs a function and can be referenced as a variable. The group will have inputPoint and an OutputPoint. The group will construct a function composition by traversing the nodes contained within it.
It will take the nodes that connect to inputPoint and follow them to each node that is connected to its ouput. While traversing, construct a transform function map. Once you make it to the output node, close the transform function map and export it as a function closure.
See more28 January 2026
So generally things are going well. Currently the base of the whole reactive graph system is working well. And adding new nodes isn't as hard, although in the future will definitely be moving transformation functions and render into one file and export as an object type thing.
Anyways, so whats to do now...
a list view for selecting which node to add, maybe like a command bar. Maybe can also use this to compose node trees, for instance perhaps I can type—
slider > *2 > {x} to make a slider thats connected to a multiplier node which exports as an x property. Instead of making 3 separate nodes and setting their values. So I get speed of typing code by the graphic qualities of canvas :)
Make connections selectable, some easy way to mass manipulate them also... change which side it connects and stuff.
I think its time to add deletability... delete nodes and edges
copy multiple nodes with their edges intact. So if for instance I copy a set of nodes, then it will also go through all edges and see if the edges are connections between one of the selected nodes (crucial to check that both from and to are selected) and if they are, copy those edges with whatever new id you give the nodes.
make a connection mode so can easily connect nodes, right now connecting nodes, you have to aim for the edge point (which also often interferes with draggin) and then connect to another edgepoint where you have to aim and stuff again, I wanna be able to just draw a line from one node to another and just connect that.
25 January 2026
Revamped the graph system so its simpler to make new nodes and manage them. Still contemplating the validation system I have... that might need some clean up.
Also contemplating adding reverse flow. So basically the circle that gets outputted on canvas could be overlaid with a bounding box that I could drag.
See more22 January 2026
Changes color based on active link!
Makes it easier to follow relationships :)
See more
18 January 2026
The idea is to take the interface of are.na canvas, so positioning, zooming, draggin etc and then combine it with the engine of the publication tool, essentially giving me a node based procedural publication design tool.
Essentially will have views for drawable tings, so here is a circle for example.
See more17 January 2026
Day 1: Basic Whittling...
Also taking a screen printing class... so expect to see more of this stuff!
See more17 January 2026
I've been using Emacs for the past 6-8 months and I've grown to like it quite a lot. I shifted to it when I was doing C programming and eventually wanted to do some Lisp.
I moved with ideas of extreme configurability and the awesomeness of Org mode. But I never got into Org mode (because of inferior portability compared to markdown) and I didn't get that into configuring emacs. I did some playing around, wrote some Elisp functions and had a nice workflow going, but I think its been pretty clunky. Things work but they're not as lighweight as nvim I'd say. And I don't think thats what emacs is, 'Emacs is an OS'.
So yeah, I think for now, I want something lighter. But I've learned a lot of things from emacs in terms of interaction possibilities. How you navigate through your system, how to spawn and keep servers running etc.
I think I wanna bring those things back and use TMUX + Nvim combo to sort of rebuild that. Keeping focus on simplicity so things are easy to change.
See more7 January 2026
Update Number #2 (JAN 17): since having started this post, I began a refactor and now the refactor is done... Fully rewrote the repo to make it more easier to work with and better organised and performance wise much better + added undo redo by using a reversible store object.
Whatup gang! Some updates on the Are.na Canvas. I'm making this entry on the canvas itself, I've been using it daily over the past few days and its been pretty great. Everything works and feels smooth!
Let me outline all the stuff I added!
1 January 2026
I'm updating this post from the canvas :) I think the canvas itself is almost ready and excited to share it online. There was some weird bug where when I saved the .canvas file to are.na channel and loaded it back in there was a JSON parsing error. Although it happened only for a specific block and hasn't happened since... so I dunno. Will see if this comes back later.
I still need to implement groups, and making new blocks. Maybe make the canvas infinite, like it can start of at a certain size and grow based on farthest away block or something.
See more