Simon Karman

Cloud Consultant and Game Developer

Voromulti

An interactive experience where each site of a Voronoi diagram is controlled by one of the connected users.

Created by Simon Karman

Published on 2023-11-09

An interactive experience where each site of a Voronoi diagram is controlled by one of the connected users.

Voromulti allows multiple users to interact with a Voronoi diagram in real-time. Each user's mouse location controls a site on the diagram, creating dynamic visual experience.

A Voronoi diagram is a way of dividing a plane into regions based on proximity to a set of points. Each region, called a cell, contains all points that are closer to a specific point (called a generator or seed) than to any other generator in the diagram. Imagine scattering points on a surface; the Voronoi diagram would then divide that surface into areas where each area is closest to one specific point.

The application is built with a NodeJS server handling the backend and a React frontend for the user interface. It uses the Krmx library for the websocket based networking and D3 for Voronoi diagram generation.

The application can be hosted on AWS. A CDK app is included in the repository that allows you to deploy the server and client as two separate ECS Fargate Services. Follow the steps in the aws/ directory in the repository. Make sure you provide zone id of a Route53 zone that can be used as the root DNS zone, a voronoi. subdomain will be created under that root domain.

If you don't have an AWS account you can also run the application on your local network. To do so follow the steps in the README.md to start the server and client on your machine.

By Simon Karman|2023-11-09