I started my career because of that one famous TED talk (the one linked above) on multi-touch user interfaces by Jeff Han. The way he presented his experiments and solutions, the sheer awesomeness of simultaneous multiple inputs in user interfaces, it had such a profound effect on my young brain that it kickstarted a latent need to build things from scratch. I went deeper and found a group called NUIGroup, a forum with people from all over the world experimenting and finding ways to build multitouch hardware on their own. Learning from that group, I built a multitouch screen using a projector, camera, and infrared lasers. Simultaneously, I joined a group of people developing SDKs for building apps with multitouch UX. I was one of the core contributors to the PyMT project, which later evolved into Kivy.org. I learned so much being part of that group, thanks to some amazing people and mentors.
It’s been close to 4 weeks since I last wrote about Yantra. Within a week I wanted to wrap up the project, clean it up and then make the repo public. In a classic case of chasing the next interesting project to do, I got distracted with electronics and began 3 separate projects (Will write about it in the future). I was also apprehensive about sharing the code as I kept finding edge cases that I wanted to fix before release. It was an endless cycle of fixing and testing. So I finally had to take a call and release it in whatever state it is in.
NOTE: I asked Claude to help me distill this topic from my notes, and it did such a fine job that I hardly made any changes. I left this explanation in place because it's a succinct overview of Yantra's node execution process.
At its core, Yantra represents workflows as Directed Acyclic Graphs (DAGs). Let’s explore exactly what that means and why this design choice is crucial .
What Is a DAG?
Directed: Data flows in one direction (node A → node B)
Acyclic: No loops back to previous nodes (no infinite cycles)
Graph: Nodes (tasks) connected by edges (data flow)
Why Not Just a List?
Because real workflows aren’t linear. Consider a typical DevOps automation:
The Inspiration: From Cartoons to media processing libraries to Real Problems
Growing up, I was fascinated by Tom’s and Wile E. Coyote’s elaborate contraptions that set up impossibly complex chain reactions. The end result was usually Jerry or the Road Runner outwitting them, but it wasn’t the fault of the machine itself. I even attempted a few times to set up my own Rube Goldberg machine. I was thinking the other day that I find some DevOps tasks fun for exactly the same reason. The magic is how the chain comes together and ultimately produces some result. It’s fun to see the chain reaction in action.