Skip to content
This repository has been archived by the owner on Dec 4, 2021. It is now read-only.

GSoC2011

Kiel Christofferson edited this page Nov 16, 2015 · 1 revision

Google Summer of Code 2011 Liquid Galaxy Project

What is Liquid Galaxy and the Liquid Galaxy Project?

Liquid Galaxy is a remarkable panoramic system that is tremendously compelling. It started off as a Google 20% project to run Google Earth coordinated across multiple systems, using COTS (Commodity Off the Shelf) hardware and it has grown from there! Open Source applications such as the MPlayer video player have been extended to run on Liquid Galaxy.

Liquid Galaxy hardware infrastructure consists of one or more computers driving multiple displays. Liquid Galaxy applications have thus far been developed using a Master/Slave architecture. The view orientation of each slave instance (display segment) is configured in reference to the view of the master segment. Navigation on the system is done on the master instance and the location on the master is broadcast to the slave instances via UDP packets. The slave instances, knowing their own locations in reference to the master, then change their views accordingly.

The Liquid Galaxy Project, while making use of Google Earth software, does not develop the Google Earth code-base itself. Google Earth is not Open Source software, although it is free (as in beer). Instead, the Liquid Galaxy Project works on extending the Liquid Galaxy system with Open Source software both improving its administration and enabling Open Source applications, so that content of various types can be displayed in the immersive panoramic environment provided. The project is also interested in using and extending Open Source 3D and panoramic content generation tools for creating content to run on Liquid Galaxy systems.

What kinds of skills, experience should you bring?

At least one of:

  • Network programming or system scripting in shell, Perl or other scripting languages.
  • Linux system development, especially input devices and/or X.Org
  • Experience with Google Earth development, including KML, WMS, or other technologies used by Google Earth.
  • Technical experience with other panoramic display or panoramic content production systems.

Who could you be working with?

  • Kiel Christofferson (End Point)
  • Adam Vollrath (End Point)
  • Ben Goldstein (End Point)
  • Andrew Leahy (University of Western Sydney, Australia)

What resources are available to help you?

  • Access to Liquid Galaxy Installations in Google offices around the world.
  • Assistance setting up your own development Liquid Galaxy in your home or office.
  • Possible loans of equipment.

Project Ideas

New Control Input Devices

Description: Currently most Liquid Galaxy systems are controlled by a LinuxSpaceNavigator and a touchscreen. We'd like to see other input devices control Google Earth. Obvious examples include the Wii Remote, Xbox Kinect, and Android phones, using accelerometers, GPS, or other novel input.

Requirements: Knowledge of Linux input devices and other system administration development.

Difficulty: Medium

Panoramic Content Production

Description: Because Liquid Galaxy uses COTS (Commodity Off the Shelf) hardware, we're generally limited to flat display technologies. This means we're displaying multiple flat planar views arranged in a cylinder (rectilinear). However most panoramic content publishers use spherical or cylindrical (curvilinear) projections. Displaying this type of content on a Liquid Galaxy requires conversion to multiple planar views. We'd like to see this process automated as much as possible.

Deliverables:

  • Process(es) for converting spherical or cylindrically projected images and/or video to rectilinear using Open Source Software.
  • Several useful Panoramic videos, or slideshows of images.
  • Appropriate automation, using scripting or other means.

Requirements: Experience with panoramic imagery or video.

Difficulty: Medium

System, Network, and Caching Performance Monitoring

Description: We'd like better insight into each level of the Liquid Galaxy stack, especially the multiple levels of caching. A detailed near-real-time performance monitoring solution could help diagnose bottlenecks and configure the Squid HTTP cache for better performance. Metrics from each system should be collected and displayed immediately, including disk usage, networking, CPU and GPU utilization, HTTP cache hits and misses, etc.

Requirements: One or more of:

  • Deep understanding of and interest in caching performance.
  • Linux system performance monitoring and visualization.
  • Linux GUI development -- X.Org or web.

Difficulty: Medium

Add or adapt Networked View Synchronisation to other Applications

Description: Google Earth is certainly a "killer app" for the Liquid Galaxy platform. But there are many other applications that could be easily enhanced, coordinating multiple instances rendering portions of a panoramic view. Here's a few ideas we have, you may have others!

Requirements: Linux network programming, and development experience with proposed application(s). Depending on the application you may need to work within other open-source projects as well as with Liquid Galaxy Project mentors.

Difficulty: Widely Variable

Touch Screen Control Enhancements

Description:

  • Application (Earth/Mplayer/Sauerbraten) “selection” buttons using xdotool to do window searches and map/unmap or similar.
  • Tour Control (not likely feasible).
  • Load/Unload KML from touchscreen.
  • Control standard Google Earth features eg. toggle layers and grid, Sun mode, etc.

Requirements: Linux system and process programming, and client/server interactive web applications.

Difficulty: Variable

Google Earth Remote Networking Enhancements

Description:

  • A contributed script called "viewsyncrelay.pl” can act as the recipient for the Google Earth ViewSync packets sent by the Google Earth master. The script broadcasts the packets to the slave nodes in a Galaxy setup. As a middle-man the script can potentially alter the values, execute scripts on the clients, collect statistics, trigger sound effects, etc. Help this script grow into a more functional and extensible tool. Must know Perl (or similiar) and be familiar with UDP network communication.
  • Connect several LG rigs together for shared virtual tours/field trips. Can probably be achieved by adapting viewsyncrelay.pl and some ViewSync->KML->ViewSync glue.

Requirements: Intimate familiarity with Google Earth, or Linux and IP networking, or keen interest.

Difficulty: Medium

GigaPan Viewer, on Adobe Air

Description:
  • Add UDP broadcast/receive to GigaPan Desktop Viewer
  • Update GigaPan Desktop to AIR 2.5 namespace so that it can be made into an Android .apk
  • Extend the AIR usage further to allow Android-controlled (or not) gaming on a Galaxy setup.

Requirements: Adobe Air development experience

Difficulty: Medium

Liquid Galaxy System Deployment Automation

Description: Presently Liquid Galaxy systems are difficult to deploy, requiring several hours of one or more experienced Linux system administrator's time. This wiki does have installation instructions, but the process could benefit from better automation, testing and documentation. Features like GUI configuration, or automated, even dynamic personality assignment would put Liquid Galaxy much nearer the reach of many Linux enthusiasts.

Requirements: Linux System Administration knowledge

Difficulty: Easy

Bring the desktop Google Earth user-interface experience to Liquid Galaxy

Description: Liquid Galaxy setups are fantastic platforms for showcasing Google layers and datasets. However it is difficult for users to load their own KML, datasets and even interact with basic features of Google Earth eg. turning on/off specific layers. If LG was as easy to interact with as desktop Google Earth a whole community of education and scientific users would thank you! There are open-source tools that may help here eg. Synergy and Sikuli.

Requirements: C programming experience with Windows or Linux.

Difficulty: Medium


Interested? What you have to do next...

If you want to participate in GSoC 2011 either as a student developer or mentor, you may contact us in our freenode IRC channel, #liquid-galaxy, or send an email to lg-gsoc@endpoint.com. Please also read the Student Application Template to see what we expect in your application.

The Liquid Galaxy Project's Google Summer of Code Timeline will closely follow GSoC's main timeline here: http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline