LightDance Editor
Projects | | Links:
This is the collaborative choreographing platform and hardware remote controller for NTUEE LightDance 2022.
Abstract
This is a platform built for choreographers, stage designers, and directors to design and control the light show in real time. It provides tools for designing the overall light show as well as the ability to directly control the hardware on the stage.
Features
User
- Real-time collaborative editing
- 3D editing and simulation
- Multiple selection mechanisms for selecting dancers and parts
- Many supported hotkeys
- Saving of all configurations in the backend using MongoDB
- Self-built front-end state management for smooth simulation with music playback
- Caching with Apollo Client and Redis for increased speed of operations
Director
- Real-time control and monitor dancers’ hardware remotely
- Sync with the hardware time to offsets smaller than 30 milliseconds using NTP
- Start the show with music playback smoothly on the beat
Dev
- Utilizes on Docker and docker-compose to build isolated environment
- Formats code with Prettier and ESLint
- Follows the Triangle Workflows in development
System Architecture

Tools
- Typescript
- React / Redux
- Apollo Client (GraphQL)
- NodeJS (ExpressJS, GraphQL)
- Websocket
- UDP (NTP Algorithm)
- MongoDB / Redis
- Docker / docker-compose
- Prettier / ESLint
Contributions & Reflections
As the software team leader, I led a team of 13 members in the development of the project. I was responsible for designing the overall system architecture, managing tasks, and solving the most critical issues. Additionally, I performed code reviews, controlled the development flow, and maintained project documents. I also worked closely with the hardware and design teams and had frequent communication with them.
This was the most impressive and time-consuming project of my college life. I worked on it for over three years and saw significant improvements each year. Through this project, I not only gained technical skills but also leadership experience. I learned how much value others can bring to a project and had a great time working with many talented people. If you are interested in the project, please consider giving us a star on GitHub!
