Academic Papers

During my studies, I worked with a variety of interesting topics, which resulted in the following papers. The following is a list of some of the most significant and interesting papers.


Using Neural Cellular Automata to Generate Neural Networks.

Thesis project


The design of the topology of artificial neural networks has often been done by human hand. However, with recent progress in the field of neuroevolution, such as deep neuroevolution and NEAT, there now exists algorithms that can reliably evolve the topology of networks, resulting in well performing AIs. In biological systems, neural networks are grown using cell reproduction which happens based on cells' local information. The technique, neuroevolution through neural cellular automata, is a new neuroevolution algorithm that tries to mimic the function of biological cells by making use of neural cellular automatas.


The idea behind NETNCA is to apply neuroevolution to neural cellular automatas capable of growing the topology and the parameters of a neural network. This is similar to how genes of cells have evolved over billions of years to be able to produce complex neural networks, such as the brain. NETNCA proves to be able to solve different control and classification problems using non-traditional network topologies. It even suggests the possibility of using the same NCA to generate solutions for similar problems. Although there are still many improvements that need to be made to the NETNCA algorithm, it provides an important first step for the research of using neural cellular automatas to build neural networks.



You can read the full paper here.

The source code of the project is available here.

Tessellation Shaders


Tessellation is the process of subdividing surfaces into smaller polygons, that can then be manipulated based on different variables. The point of using tessellation is to allow for the use of polygons with lower vertex counts to increase their complexity during rendering and thereby save resources. This technique is also used for implementing level of detail in scenes, so models further away from the camera will stay less detailed, without impacting the quality of the scene, as they would be too far away to be properly seen by the camera.


You can read the full paper here.

The source code of the project is available here.

Generation of Stable Structures using Neural Cellular Automata.


Neural cellular automata has previously been applied most often to a 2D domain. Recent research has shown that they can also be effective if extended to a 3D environment, and have been capable of generating structures in such a space. This paper presents a use case for generating 3D structures which have some particular properties. Specifically, being stable under the force of gravity.


This is done by using neural cellular automatas, trained via an evolutionary search algorithm, to generate 3D structures. These structures are evaluated based on a fitness function that utilises Unity’s physics engine to simulate the force of gravity on the structure. This is an early stage of experimentation, but the end goal is to have NCAs that are capable of generating stable structures that could be useful for procedural content generation in games and other virtual 3D environments.


You can read the full paper here.

The source code of the project is available here.


Representation of Democracy in Games


Democracy is quite an old form of government dated back to Ancient Greece, but it is still the most common type of government in the western world. In this paper I try and take this concept of democracy to games, that have long contained elements of democracy. I will compare real world democracy to democratic simulations like Democracy 3, but also deceit
games like Among Us, that is heavily reliant on elements of democracy in its gameplay. I also look at how these simulations or representations work and how the player agency affects these results, since games are created by designers, but played by players.


You can read the full paper here.

Digitalisation of Elections

Oblivious Transfer in Voting Protocols


Digitisation of elections comes with at lot of problems, from security to trust in the digital solution. How can a voter trust that their vote has been correctly submitted and how do we securely give the voter this kind of confirmation, without the system knowing what was voted? The problem is old, but the digital setting is new. Voting with ballots has not changed a lot over the years. We have added anonymity, but the basic premise remains the same, even when utilising digital solutions.


In this paper we will explore the history of voting and examine the experiences from Norway and Switzerland with digital voting systems. We will also discuss a potential solution to the problem regarding submitting votes as stated above. We suggest that the problem can be solved by utilising Oblivious Transfer and we have implemented a prototype system as proof of concept based on the Efficient Composable Oblivious Transfer.


Based on our results and the experiences from Switzerland, we believe that Oblivous Transfer could be part of the solution, but it cannot stand alone. Several problems still remain and having a secure system does not guarantee a voter’s trust, which is paramount for a system to be successful.


You can read the full paper here.

The source code of the project is available here.