We are a small collective of developers, makers and thinkers that love to build things.

Mind, Body, Network

tldr: This article talks about my personal principles for well-being, and the strategies I employ in my daily life to feel healthy, happy and fulfilled.

This post is mirrored on Mirror:

Mind, Body, Network
This article talks about my personal principles for well-being, and the strategies I employ in my daily life to feel healthy, happy and fulfilled.

People who have known me since 2016 would know that I have had a hell of a relationship with health and my body. Part of why I am working on a preventive health project at the moment, is that I have struggled with body dysmorphia and health issues for a large part of my life. That's why people who meet me after a long time, often find themselves quite shocked at how much I have changed- both on the outside and on the inside with my perspectives on human well-being.

For reference, this is a photo from when I was 16:

Me, in 2016 on my birthday 🥳

And this is me now at 21:

Me in 2021, after tons and tons of gym time 🏋️‍♀️

These days I have much less

Top, Bottom, Up, Down

tldr: Building web 3 startups is hard, as you have to balance product-market fit and iteration speed with community and governance. To achieve this balance, a mix of strategies must be deployed- using concepts from 20+ years of startup history, political science and human behavior.

This post is mirrored on Mirror:

Top, Bottom, Up, Down
Building web 3 startups is hard, how do you balance product-market fit and iteration speed with community and governance?

Visionaries and dreamers have defined innovation culture in the startup ecosystem of the last 3 decades. In fact, we find ourselves in a world where cult founder personalities are aplenty, look no further than Elon Musk, Bill Gates and Steve Jobs.

This makes sense. Elon Musk's vision for affordable electric cars, and his drive to bring that vision to reality is what gave us Tesla. The company's mission was always driven top-down by what Elon Musk wanted for the future. In a sense, Tesla was an extension of Elon's ambition. The recipe for c

How we plan to change research

Now that we have gone through why we want to do this, let’s carry on with what we are going to do about it with these few projects.


An organised project is a successful project. Having an idea or question isn’t enough to do research – you must also have a plan of what to do, somewhere to note down what you find and write something to describe what you have done so others can know. All of this requires some form of organisation, and the most common way to do this is with some form of notebook.

An existing notebook like Notion can work, of course, but a shortcoming of Notion is its set of predefined modules. Going back to the doctrine espoused in our previous post, we don’t want to be a top-down organisation pushing down what we think is best for the user. Instead, we want users to be able to fulfil what they want. To this end, notes is designed to be a fully modular and user-extensible notebook application. If a user isn’t satisfied with the functionalities available, he can develop

Let's make research affordable

Amateur research is fine and all, but doing research is hard. Research isn’t just about the research – it’s about finding something to experiment on, something to experiment with, and making sure that whatever you find gets known to the wider world.

Unfortunately, today’s research exists in a bubble. Starting from the beginning of an experiment to publishing the results of one’s work, there is a certain way of doing things that presents such a barrier to entry to the layman. Lab equipment requires enormous sums of capital. Chemical suppliers refuse to sell to individuals. Journals won’t consider research from some uncredited institution. How can one even start?

We aim to address that with foundry collective. Research should not just be the domain of big institutions with enough resources. From a network of people to bounce and build ideas off, to a logistics system that keeps you supplied with the things you need to conduct experiments, to building affordable and effective lab systems, w

Research should not be professional

Since the dawn of modern science in the Renaissance, research has been conducted by the amateur. From Galileo looking up to the stars, to Leeuwenhoek grinding his microscopes, to Faraday tinkering with electricity, discoveries have been made by people driven by interest or curiosity about the world around them. However, with the rise of industrialization and universities within the past century or so, research has been increasingly segregated into ivory towers of research facilities.

We don’t think that that should be the case. Professional research is research driven by funding; research chasing grants and the support of those with the means to provide them. This inevitably introduces some form of bias to the research. Do we really need to look any further than the mess nutrition science has become with Big Sugar?

Research is more than trying to find something politically expedient or economically viable: it is the extension of mankind’s knowledge. X-Ray and machine learning’s progress

Faking Refraction in ThreeJS

In this post I'll describe how to achieve a crystal-like refraction effect within only ThreeJS. Below is a demo of the effect that's to be achieved. You can use your mouse to change your angle and position (right-drag to rotate, left-drag to move and scroll to zoom in and out). You might need to wait a while for the texture to load.


Do you need to be taught to teach?

I've always wondered why it was so difficult to become a teacher. Do you really need a school for teachers, where teachers teach students to teach? Are the licensing requirements to teach students, really that useful? Is there that much value to restricting the supply of teachers through regulation and compulsory education. And above all, isn't teaching something that is inherently human?

Let's first take a long hard look at how teachers learn to teach. An aspiring teacher has a set of hurdles to overcome before they can even teach professionally. The biggest, is a teacher training program, in Singapore this is primarily done through the BABSc diploma.

The Bachelor of Arts (Education) and Bachelor of Science (Education), also known as BABSc (Ed), is a 4-year sponsored undergraduate programme. It equips you with an academic degree in arts or science-based subjects, with a teaching qualification to teach in primary or secondary schools.

If they don't pursue this diploma, they can also do a

Institutionalised Learning

Since the industrial revolution, many public services have been institutionalised and organised into structures - of which the biggest two are healthcare and education. Healthcare gave rise to public hospital and health insurance while education gave rise to primary, secondary and tertiary schools.

The industrial revolution brought along with it, a toolkit on how to approach system design, which revolved around standardisation and efficiency. With a heavy focus on measurements and indexes, industrialists imagined a world where everything could be quantified. Undoubtedly, this has led to the many problems one can observe with the education system today.

A focus on metric based thinking, brings the culture of test-taking to school. When these professional test-takers enter the workforce, it creates a vicious cycle of industry leaders who can't look past KPIs and quantitative evaluations. This then leads to even more metric based study and evaluation.

In a schooled world, the road to happine

Learning used to be fun

Think back to when you were just growing up. When you were 4, enjoying the little things you did. Maybe you loved to draw on paper, maybe you were more of a musical person or maybe you loved to dance- but it doesn't matter what you did. You were just having fun.

You probably also asked a million questions. Why does the sea look blue? Why does the person on the TV talk funny? Why does the train make more noise when it goes into the tunnel? As kids, we were full of curiosity, wonderment, maybe even blind to the realities of the world.

It really starts with the formal education system, where we switch from asking questions, to being asked questions. "I don't know why" goes from a statement of curiosity to one of incompetence.

You need to learn because your worth in society is decided by how much of the test you get right.

This decouples the act of learning something new, from the reward which is extrinsic, through grades, compliments from teachers or comparison with peers. By now, long gone

PCIe Passthrough and libvirt

A pretty awesome feature of any modern hypervisor is the ability to pass through physical devices like USB and PCIe, without using host drivers. Almost any PCIe device can be passed through, including GPUs. There are many guides online discussing GPU passthrough, including this one by @bryansteiner.

GPUs, however, aren't as easy because they are initialised before the operating system starts. Upon boot, the firmware (sometimes called BIOS) initialises the GPU into VGA mode and starts drawing immediately. Any graphical interface (including the Linux console) will be constantly writing frames to the video card. To free up a GPU for use, you can either go purchase and install an additional GPU or instruct the operating system to stop writing to the current one.

I'm not willing to spend on another GPU on my system, therefore I went the latter route. Most guides online mention using two GPUs, but doing so with one GPU will work too by configuring the system over SSH. I used Fedora Server as

Abusing LOAD_FAST in Python 3 VM


A while ago, I read this article about abusing LOAD_CONST in Python 2.7. We are in Python 3.11 now, and CPython has since implemented quite a lot more features and checks. I wanna try to abuse the Python 3 VM to similarly execute shellcode, but I wanna do so without crashing CPython.

Some things to note first:

  1. Just like the case for LOAD_CONST in Python 2, the bug I abused in LOAD_FAST in Python 3 is known. It's even in the name! It's just way faster to leave that bug there.
  2. I mean there's the ctypes module that allows you to do literally anything. But that's not fun at all.
  3. I did not know anything about the Python interpreter prior to starting this. I've written some high level explanation of how CPython does things below, hopefully it's correct and helpful for anybody just starting.
    • Also CPython source is just so easy to read. It's been a joy.

Since I wanna try this on the newest Python, I cloned CPython and built the x64 Debug and Release version of CPython. At the tim

Folding the Julia Fractal

So the Julia sets are a class of sets that have became very popular because of their beauty and an interesting object of study. The definition of a Julia set is really simple, it is the set of complex numbers \(\bold S_c\) such that for \(z \in \bold S_c\), we have \(|f^n_c(z)| \le 2\), where \(f_c(z) = z^2 + c\). Each choice of \(c\) gives rise to a different Julia set with distinct looks. I might write more about these stuff maybe but given how popular this subject is you can find a lot of it's cool properties anywhere on the internet. I suggest checking out Inigo Quilez on the subject of rendering them.

I hope your internet's good. Due to the nature of the subject it does require rather large images.

Given how simple the definitions of these sets are, it makes it really easy and straight-forward to render them. It can be done in a few lines and is one of the first things I ever coded.


The source code for the above is here, you can use the mouse to control the value of \(c\). I left the