Mentors
Víctor Sánchez & Andreu Ibañez
Introduction
The Google summer of code program has been one of the greatest experiences of my life.
During the summer I developed the first chess application in the world that uses satellite
communications.
The project idea was to create a space-related visualization project in collaboration with
Hydra Space
&
Liquid Galaxy.
The target is to use the Liquid Galaxy cluster to visualize a collaborative chess game.
In this game humans on Earth play against a satellite AI.
What is Liquid Galaxy? -
Liquid Galaxy is an open-source project founded by Google.Liquid Galaxy started out as a panoramic multi-display Google Earth viewer but has evolved to become a general data visualization tool for operations, marketing, and research.
Liquid Galaxy gives the ability to fly around Google Earth, view panoramic video and photos, develop interactive tours, and graphically display geographic information data, but it is also a nice plataform for multipurpose visualizations.
What is Hydra-Space? -
Hydra Space is an engineering company based in Madrid, Spain dedicated to satellite IoT communications with impressive full inhouse technology. Hydra Space is a member of "Madrid Innovation and New Space Cluster" (MINSC)
What is Hybridium? -
Hybridium provides an all-in-one hybrid auditorium event technology
designed to deliver the most impacful events.
The solution features:
Large scale video-wall and hologram technologies,
uniting participants for exceptionally immersive and engaging hybrid collaboration,
training and events.
Hybridium makes hybrid and distance learning a truly immersive,
collaborative and engaging experience, enabling organizations to extend their geographical reach.
Frictionless real-time high-quality video,
chat and content sharing allows participants to collaborate as if they were in the same physical space.
LG Space Chess
LG Space chess is the newest way of playing chess.
Remote chess is played in various forms,
traditionally through the postal system or its updated version (email), less common methods are fax,
homing pigeon, and phone.
Today it is usually played throughout a dedicated server.
Now, Liquid Galaxy
has created the first chess in the world capable of playing against a satellite.
The main idea is that the players vote for a specific movement. The most voted movement will be selected as Earth's choice
to play against the satellite.
To achieve this we have set a communication protocol so we can exchange data between the ground-station and the satellite.
Firstly, we must understand the structure of the project.
• Satellite with a chess engine
• Ground station that communicates with the satellite
• Cloud function that communicates with the ground station
• Web controller that communicates with the screens
• Screen visualization
The basic workflow is the following:
- First Case:
• The satellite sends the chessboard status to the ground station and the movement selected by the satellite's AI.
• The cloud function fetch the packet from the ground station
and update the controller's database with the packet content.
- Second Case:
• The cloud functions get the most voted move, create the package and send it to the ground-station.
• The ground station sends the package to the satellite.
• The satellite processes the package and updates its chess engine with the Earth's move.
LG Space chess also has two more game modes, Local Play where the user can play against the local machine, and a “Top Games” mode where the user can reproduce chess master's games.
What work has been done? - Description
LG Space Chess was born in 2022 coded by Pablo Sanchidrián.
LG Space chess as explained before is divided into three subprojects:
• Cloud Functions
• Web/Android Controller
• Screen visualization for the Liquid Galaxy Cluster
• Cloud Functions
These cloud functions run every certain amount of time and are responsible for the connection with the ground station and keep the database updated.There are the two cloud functions:
- The first one fetches the package the satellite left in the ground station. If there is a package, take it, processes it, and update the database with its content. If there is no package the function aborts the operation.
- The second one fetches all the players' votes and takes the most voted. With the most voted move we create a package that will be sent to the ground station if there are no votes, the cloud function will vote automatically instead of the players using a chess engine.
• Controller
The controller will be the app that the users will connect to play against the satellite, against the local machine or play back chess master's games, as well as get the current location of the satellite (map visualization).• Screen visualization
3D visualization of the current chess play. Every user with the controller will be able to connect to the screens. Instantly its chessboard status will be displayed on the screens, and every single move or change they make will be reflected on the screens. The user can also view an illustration of how this game works, where he can see the exchange of data between the ground station and the satellite.What work has been done? - Project Goals and Code
- Cloud Functions [DONE]
- Controller [DONE]
- Firebase Auth - Code
- Voting system - Code
- "Satellite" game-mode - Code
- "Local Play" game-mode - Code
- "Top play" reproducer - Code
- Get satellite's latitude & longitude - Code
- View satellite location endpoint - Code
- LGSetting (buttons: Connect/Disconnect, Reboot, Relaunch, Poweroff) - Code
- Connection management functions - Code
- Screen Visualization [DONE]
- Chessboard 3D visualization - Code
- Chessboard FEN Load function - Code
- Chessboard Move Logic - Code
- Game Illustration - Code
- Camera move animation function - Example Code