GSoC2011
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.
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.
- Kiel Christofferson (End Point)
- Adam Vollrath (End Point)
- Ben Goldstein (End Point)
- Andrew Leahy (University of Western Sydney, Australia)
- 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.
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
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
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
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!
-
MPlayer has already been patched, enabling coordinated playback for PanoramicVideo. However the existing patch works only for video, not audio. Modify MPlayer to also send UDP master packets even if video frames are not available to be rendered ie. during audio file playback. Alternatively, modify VLC to account for bezels when using “-wall” filter for immersive ultra-widescreen movie display eg. Cinerama epics!
- Develop some of the virtual world clients to provide a networked immersive experience on Liquid Galaxy - OpenSimulator, KataSpace (pictured), Cave SecondLife
- Enable more Open Source VideoGames and/or Game Engines to run in Liquid Galaxy. For example Ogre3D, Alien Arena, Spring RTS Engine. Quake and Cube2:Sauer Braten could be used as examples.
- Enhance WebGL Samples to work on a Galaxy setup similar to how Gregg enhanced the WebGL Aquarium. Another example might be Google Body browser.
- Use/adapt Google Art Project.
- Install scientific data visualisation applications that could be used in a Liquid Galaxy by researchers. Some apps may be fairly straightforward others may require complex software development. Here are some examples - ParaView, Processing, Xdmx, Chromium (the GL library not the Google one), EqualiserGraphics, CSIRO VizStack, Avizo VSG, OssimPlanet, VMD/NAMD, Blender, KDE Marble, OpenInventor, VR Juggler, vrkit, SAGE, Coin3D, Amira (VR option), Stellarium, Celestia.
- Google Talk video conference with 8 friends on a Liquid Galaxy?! See NTT t-Room as an example.
- A multi-screen YouTube launcher. Synchronise playlists across all the displays. Perhaps when doing a video search, show one video on each screen from the match list.
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
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
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
- 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
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
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
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