Midterm progress report for the Capstone Project, Kevin Ni

This documentation provides a brief of the effort that has been made towards the capstone project.

User testing
A boot-up user testing has been done with paper prototype of this project where the process and apparatus are presented in the form of a series of storyboards. Subjects are carefully selected from Shanghai Fashion Store under the requirement of as little prior experience with computer programming as possible. Subjects are presented with the paper prototype with all text translated to Mandarin Chinese. No additional instruction was given, other than that they should browse the prototype as they wish. Subjects are given as long as they need for the test. After subjects actively concluded their interaction with the prototype, a series of questions were asked to evaluate their response to the proposed design. Questions are as follow.

  • Do you feel confident that you have fully, or at least adequately understood the principles this project operates on?
  • Do you feel confident that you can continue exploring this project with more code pieces like you have done now?
  • Do you feel confident that you can figure out the next step without much effort?

A total of 7 subjects were recruited. 6 valid response was received. One subject expressed much concern for the goal of the project and would rather have a in-depth discussion instead of answering the survey questions. This demand was satisfied, but not included for the analysis. Among the 6 valid response, 5 answered yes to the first question, 4 answered yes to the second question and 3 answered yes to the last question. During the non-compulsory post-survey interview, 4 expressed that they were not able to grasp what should be done next and had to guess.

The result revealed that the ideal of this project had been well delivered. However, the proposed graphic design had left the users too much to wonder. This could lead to unwanted overwhelming of the users and consequently the reluctance of their interaction. This result has called for further continuous user testing regarding the graphic tutorial design later through the production phase.

Production and Progress
The major part of this project consists of implementing such a framework that is capable of loading in an external definition of code pieces and presenting the output of the code pieces to the users real-time. This has been done functionally. This documentation will, however, not discuss the technical detail regarding the design and structuring of the software. What is important is that the framework is now ready to provide a fully-functioning process for interaction, and is able to adapt to devices of different input devices and sizes of screen. It is safe to say that the first milestone of this project has been properly achieved.

As mentioned above, the implementation is only a functional piece. The design of a welcoming visual style has not been engaged in the production so far, hence the graphic interface is, to an extent, intimidating for the unknown. Given the important role visual representation plays in relieving the stress when facing unknown matter, such incompetence may entail serious problems in subsequent user testing, leading to inaccurate response and hence unreliable conclusion from analysis.

For the next milestone, this project seeks to implement a welcoming and inviting if possible, visual style. This has been proven by many research to help with the transition to strange rules and systems. User testing may continue before this milestone is reached, but the subjects will need to be notified of the incompleteness of the visual style and will be instructed to focus on the functionality as the top interest.

For detailed information about the technologies used so far, video or live demonstration, please contact the author directly. They are considered not relevant enough for this documentation and are not included as of now.

Final Project: The Silent Universe, NOC, Kevin

This is the documentation for the final project for the course Nature of Code taught by Professor Moon.

For my mid-term, I made a particle system simulator that was able to calculate the movement of a set of particles. It is built upon the real gravity formula, which in tern, is rather simple (like most other fundamental formulas): G = g * (m1 * m2) / d ^ 2. Several interesting patterns were found during experimental with different settings of gravity and environmental parameters, including the “tide” which is closely related to the actual tides as a result of the gravity of the moon, and the dancing stripes that twist and turn under the influence of surrounding centre of mass.

Now for the final, I intended to make something more “cosmic”, or, in simpler terms, more astronomical phenomenon. The original list included solar wind, galaxies, supernovas and gravitational lens. Unfortunately, I was not able to finish them all and in fact only managed to finish the first one. Senior year has been much more intense that I expected.

Basic Idea
The basic idea is simple, that the solar wind consists of numerous particles with electric charges. These particles are thus under the influence of the electromagnetic field of the Earth. The principle formula for electromagnetic forces is: F = kE * (c1 * c2) / d ^ 2.

What I got
Refer to this link: https://drive.google.com/open?id=13M942jp1VK8DawWYsbWNMMwh-quU9Djr.

Code and all other things
Please allow for some time while I clean my code and upload them.

Reflection on the Stack, Contemporary Media Theory

This is the written reflection to The Stack for the course Contemporary Media Theory.

This reflection focuses mainly on P2P networks and how they manage to continue operating even if all six layers in Bratton’s model were controlled by some sovereignty.

I would first like to clarify what the term “P2P network” actually means. Usually, it refers to file sharing programs such as eMule and BitTorrent. In this reflection, this term is used in reference to the algorithm on which these applications are built, and the network layered upon clients communicating through these algorithms. For example, BitTorrent is built upon DHT (Distributed Hash Table) and eMule is built upon KAD (Kademelia). Other instances include I2P and Tor, both of which providing anonymous network access to everyone (or every user, in Bratton’s term).

Now we can begin to look into the apparatuses of P2P networks and how, at every layer of Bratton’s model, they could circumvent the ubiquitous surveillance agents of the sovereignty, beginning from User. In his elaboration of this section, Bratton particularly maintained that the identification of a user should not rely on the physical presence of an intelligent form, whose only known agent being human, but on the ability to initiate columns in the Stack. P2P networks approach in a similar way to the goal of hiding the actual identities of their users, by mimicking the behaviour of automated bots. More specifically, they randomize their behaviour so that they do not feature common characteristics of human involvement. This drastically increases the cost of the sovereignty to interfere with their operation based on behavioural patterns, for that the sovereignty itself also relies heavily on automated surveillance agents and computational units, whose observable behaviour indistinguishable from the P2P networks and whose mission too important to abort. The same reasoning applies to Interface as well. By providing a minimalistic interface that accepts nothing but essential commands, P2P networks gives no chance that additional information is gathered during the interaction. Whether it is human A, human B or Wiki-bot C or even monkey D, there is no way to tell, not even the P2P networks per se.

Continuing to Adress. This is where P2P networks bear the least resemblance to traditional networks. In the book, Bratton quotes that “whatever that can be addressed can be ruled”. In the same way, we can say that “whatever that cannot be ruled must not be addressable”. Being able to address and access the concerned entities is one fundamental premise of a sovereignty’s authorisation over it, either electronically or geographically. P2P networks, on the contrary, have no such entity that could be addressed and approached. Put in a plainer term, there’s no one complete entity that corresponds to an end user. Each functional unit is sliced, duplicated and distributed across multiple, usually hundreds of end users. This strategy takes advantage of the fact that millions of millions of addressing takes place at a very low level in terms of the position on the network hierarchy. Such tremendous amount makes impossible the surveilling of each and single one of them. Again, similar approach on City level. P2P networks respond to regimes where thorough and constant inspection is employed, by slicing, duplicating and adhering small pieces of itself onto “clean” contents so that the inspection would not yield any fruit.

Now to Cloud and Earth. Imagine a world where Cloud have essentially been Earth, that is, where various Cloud platforms have penetrated the entirity of non-paper world. It’s either one or another, with no choice of none of the above. These platforms have access to all of the traffic and interaction and the ability to compute across time, for that they archive everything ever happened. The solution to this is to dive deeper down into Earth, where millions of physical elements now engage in the computation as well. By again dividing themselves into pieces and modules which, when alone, are just arbitrary and meaningless data, whereas when properly combined, could turn into functional units. Data and information are no longer the target, but the order and structure they are positioned, which turns out to be incalculable given the total number of computing agents involved in Earth level, let alone their geographical sparsity.

To some extent, all these solutions are the same, or at least similar in essence. They all exploit the inborn incapability of the soverignty that even though it could exercise power wherever it wants and in whatever way it wishes, it could not do this to all units on all scales simultaneously. In fact, no sovereignty would do this were there any sense left. This gives the chance for P2P networks to hide by making sure that their units would never aggregate either geographically or temporally, leaving no chance for the sovereignty to acknowledge the whole picture, let alone to control them.

Some one-week prototype of the Final Project, PDS

What it looks like

What I have done
For map generating:
Read a predefined sequence of roads and generate a map-like tree
Make sure that the roads don’t get too crowded by setting certain constraints for how the roads can expand

For silhouette:
Read an image and use contrast level to identify the edge of the building in the image
Add some ridiculous pixel manipulation to make it funny

What I still need to do
For map generating:
Keep trying various strategies so that they look like real roads, or perhaps introduce more predefined main roads
Have multiple beginning sequence for various regions

For silhouette:
Better edge identifying and strengthening
A GUI for use to pick their own image
Make the bl***y transparent work in Processing

For the poster:
Pick proper colour, storke weight and other parameters to make the poster look nice
Perhaps add some extra decoration

NOC, Assignment 8, Oscillation

Oscillation is a Latin-originated word, from oscillum, ultimately from os, meaning “mouth”.

So we’ve created oscillation and spring based on their periodical behaviour, and now maybe it’s time for oscillation based on real physical simulation, which, in other words, oscillation that springs naturally from certain initial settings.

Check the video below:

And the code below:

Some code reinterpretation of Yayoi Kusama’s pumpkin

So I’m working on Yayoi Kusama’s avant-garde (even til this day) pumpkins.

To begin with, these are her pumpkins:

And these are my pumpkins:

Essentially I created a strip that mimics the texture of the pumpkins. Curves are sine waves. Size of the dots are randomised. Their relative position to the base lines are Perlin noised. Colour patterns are directly picked from photos of Yayoi Kusama’s pumpkins. See code here.

If it were not for art, I would have killed myself a long time ago.

Week 5, Force, NOC, Kevin

In the end I missed one documentation.

So this assignment is about force, and instead of doing gravity, I did repelling forces that simulates the behaviour of particles being blown away by winds. This is done through the reversion of the direction vector (in simpler terms, swapping two points when subtracting them). To make things funnier, I also added different regions that have different friction factor, so you can see how particles are sort of trapped in some areas and are very celerated in other places. By refreshing the background less frequently and with a certain opaque index, the trace of the particles are also retained, creating an effect of bullet hitting gels and then got trapped in it until it eventually stops.

Link to the assignment.


Yay-hey! Mid-term is now officially concluded as I typed down all these words.

The Idea
The original idea comes from my obsession of having very fundamental things, through proper combination and permutation, given time and space, eventually evolve into something extremely, even prohibitively complicated. A stunning example would be the three-body problem, where the most fundamental gravity plays the sole role of variation, and all of a sudden, a slight deviation in the initial settings now results in a ridiculously yet astonishingly different outcome. It’s just like even though the world is so complex and incomprehensible in many sense, it is, after all, driven by the very basic bedrock physical laws, or laws of nature, which in turn, is again in essence, mere mathematics. I could not help but wow every time I think of this remote yet rifle relation.

What I did
I wrote a particle simulation system which has the ability to consider all four fundamental interaction between matters, the gravity, the electromagnetic, the strong and the weak interaction (of course it’s just about translating existing formulas into machine readable languages). I then give different initial inputs into this system and see how things go. Sometimes the particles gather and flock, sometimes they deviate and repel, sometimes they miraculously bind and form breathtakingly beautiful patterns. A certain portion of these settings would, almost predictably, shape results that resembles certain astronomical events, such as the asteroid belts that orbits a hard mass centre such as a black hole (which as it happens, is one of my favourite amongst all patterns I’ve created).

The noise
I also added some noise, in the hope that these low buzzing and roaring would remind people of the deep, long-buried and long-forgotten memory of the sky above them, of the starry starry nights and the transcending constellations, of the endless deathbed of silence and the ultimate peace, of the universe, of the fate of all of us. I stole a piece of what is called cosmic background noise from NASA and converted it into continuous sound (the original data is discrete and therefore cannot be played). Then, depending on the overall velocity and acceleration of the particles in the system, this piece of noise is played in various speed (by adjusting the sample rate if possible) and in various volume (by adjusting the gain of the output). The result, I would say, is rather satisfying, at least in the sense that it does evoke a feeling of tranquility and perhaps serenity.

Code and everything
There is nothing fancy about the code, except for I wrote everything in Kotlin, a language that compiles down to JVM and therefore has to run against Processing instead of p5.js. I must admit that I am so prejudiced in terms of Javascript that I avoid them whenever I can. The result is that I am still figuring out a way to have everything packed in a single, executable jar so the audience will not have to install a whole lot of toolchain to get things to work. Code themselves will be available shortly on GitHub and then updated here.

Starry starry sky,
Paint your palette blue and grey

Mid-term! Logos for STEM departments, Bin Ni

It is mid-term this time, so I do remember to write the documentation before 9.

So my proposal for mid-term was to create a series of logos for STEM departments using the same design system, and I’ve decided that this system should be particles under gravity and electromagnetic force, two of the most fundamental interaction between basic particles (meson, neutrino etc). By adjusting their mass, texture, taste, electric charges and relationship with each other, I hope to create something that is completely generative, arising solely from the domination of laws of nature and involving no artificial intervention. Results are as follow:

Neural Science


As you can see, the idea is fairly simple. To create a whole bunch of particles and let them follow gravity. For physics, a single primary mass centre is placed at the current mouse position, three secondary mass centre that has slightly less mass but is free to move around, and a total of 200 particles with various attributes orbiting this “protons and neutrons”. And yes, that’s the boring idea for physics, atoms, neutrons and protons and electrons.

For neural science a bit further explanation is required. In the picture is the structure of a very important neurotransmitter that’s more than abundant in our brains. Its functioning normally is of grave matter and is considered related to several degenerative brain disease. In the creation of these figures, atoms at their position are given the most mass with minor minor mass centres simulating the effect of various elctronegatives of different atoms. Particles then, following the great formula of Sir Issac Newton, distribute themselves among the atoms.

I must admit that there are still many to improve for this. The actual design for physics, like others would have said, are on their way. Computer Science, being on the other side of all natural sciences, still has not rang the bell for me to come up with a decent idea of how it can be expressed. Variation, similarly, is also rather limited, having on the choice of colour, size, texture, shape (not shown here because the result is kind of ridiculous) and gravity parameters. In light of what has been done before with most projects, it may not be too bad an idea to continue working on this during the rest of term if time permits – but that’s all just me talking lunacies.