Virtual 3D Antenna Array Visualization Toolkit Project
From setiquest wiki
-
Contents |
Project Overview - Virtual 3D Antenna Array Visualization Toolkit
We have developed and currently operate the world's best system for searching for extraterrestrial signals. Data collected at the Allen Telescope Array (ATA) is analyzed using open source software SonATA. SonATA looks for strong, narrow signals over a limited frequency range. Further enhancements by the community in SonATA will help us look for many different kinds of signals, and over a much wider range of frequencies.
This is a two part project - first, to develop a visualization toolkit that enables the creation of interactive 3D game-like environments for managing arrays of equipment, and second, to use the toolkit to create a reference application. This application will allow users to virtually walk around the antennas, see where the antennas are pointing, and view the general state of the antennas. What you see on the screen or display device mimics exactly what you would see if you were standing at the site.
The ATA
The ATA located near Hat Creek, CA
The ATA currently has 42- six meter dish antennas. The ATA is located in a remote location in Northern California, 300 miles from our SETI offices in Mountain View. Most of the SETI control and monitoring take place from our Mountain View location. Although we have readily available all information about the current states antennas, like where they are pointing or antenna heath statistics, we suffer from a real and non-virtual detachment from the 42 dish antennas that are so important.
The Project
We would like to develop a open source toolkit that we, or anyone else with intricate equipment in a remote location, could use to create a real time 3D virtualization for control and monitoring. This toolkit will provide the following:
- Instructions and software utilities for converting 3D models into models suitable for display and manipulation.
- All the details necessary to create the 3D landscape.
- Instructions for incorporating the 3D models into the landscape.
- Details of how the 3D models are displayed and manipulated in the 3D landscape. Examples of how to walk-through and zoom in and out will be provided. This will include source code for development of custom views and behaviors.
The reference application will be for ATA. We have very precise 3D model data files for the ATA antennas. these files were obtained by the designer and manufacturer of the antennas. The model contains 30K+ polygons. Polygon decimation may be required the model to a few thousand or less polygons, while retaining the appearance at an acceptable visual quality.
More details on this project can be found on the Project Specifics page.
Value to the Open Source Community
We envision that when this toolkit is complete it will allow anyone to create very compelling visualization tools for remote environments like the one operated by the SETI Institute. It will also be a very good publicity tool, possibly we can create a web service API so others can be virtually at the ATA with us.
This 3D capability will be applicable to many types of remote monitoring and control situations. Making this capability available to the remote monitoring and control community will be popular and very useful. An immediate application would be the Square Kilometer Array project, see http://www.skatelescope.org/. Another possibility is that Google could use it as another tool to keep track of their vast empire.
Required Participant Qualifications
- Familiarity with popular 3D gaming environments, or 3D programming techniques. Or at least willing to learn!
- Ability to research and recommend solutions
- Be able to program in Java
- Ability to create and implement project plans
- Ability to create suitable documentation
Additional Considerations
The end goal is to create the Virtual 3D Antenna Array Visualization Tookit as described. But just as important is another goal: learn how to create, plan, manage, and successfully complete an open source project as a group. Each participant needs to be willing to learn how to participate effectively.
Jon Richards (jrseti) and SETI has never managed an open source group like this, so we all have to learn how to work together effectively in a well structured manner. We all should expect to learn some proper software engineering management techniques.
It is expected that at the end of each stage the requirements will be reviewed and possibly modified. At the end of each stage we will have a "deliverable" product. For example, at the end of stage 2 we'll have a fairly developed plan. At the end of stage 3 we will have documents explaining the architecture and communication protocols, and so forth.
Members
As stated earlier on this page - this project has had several people interested in the project. Presently none of these people are active on the project, but hey are welcome to come back at any time!
- Rubal Singh
- Aniket Handa
- Rich Kenny
- Chathika Gunaratne
- Navneet Srinivasan
- Sinu John
- David Kunsman
- Ricardo Tiago
Requirements
Prerequisites
Here are some guidelines we will follow:
- When we discuss times, lets use GMT.
- Follow General Guidelines
- Follow Coding Standards
- Sign SETI Institute Contributor Licensing Agreement (CLA) and scan/email to us.
- Collaborative communication for this project will use a combination of the Talk:Virtual 3D Antenna Array Visualization Toolkit Project page and the #setiquest IRC channel.
- Issue tracking will be done at http://issues.setiquest.org/projects/3d-antenna. If you have not already done so, please create an account at this location. All things your work on should be listed and updated, as well as time estimates and actual time.
- The source code will be hosted on GitHub, see the project page at https://github.com/setiQuest/3D-Antenna-Virtualization
- The source code will be Java wherever possible.
- The communication between independent software modules should use JSON and use the Jackson JSON Processor available at http://jackson.codehaus.org/
- Source code should be written with testing as the first consideration. We will plan out our classes, implement the tests, then write the code.
- We need to decide as a group what is the best method for implementing testing. Do we use JUnit?
- All details of communication between modules needs to be documented.
- All source code should be properly commented for Doxygen.
- We will peer review each other's source code.
- Source code should adhere to these following rules: General Guidelines. Peer review should point out where a programmer has not followed these rules.
- Documentation will take place on this WiKi. We will create a directory structure for this.
- We will use git as our source code repository software.
- GitHub will be used as the source code repository. Jon Richards will create a new project.
- All participants will need to get a free github.com account and fork the main project code.
- When a participant has code ready for the main branch, he issues a git merge request to the main project.
- We will use issues.setiquest.org as an issue tracker. A separate project will be created in issues.setiquest.org.
- All diagrams should be drawn using the free program inkscape. The format should be SVG and the SVG files should be checked into the git repository. When a diagram is uploaded and displayed in the WiKi it should be converted to PNG format first. The WiKi does not display SVG files.
Project Goals
The project participants will work with us and the 3D antenna models to accomplish the following:
- Work with the mentor to further refine the requirements for the toolkit.
- Choose a 3D game environment or visualization platform. If possible the selection should take into consideration that display will be on an Android device, a Linux or Windows desktop, and maybe an iPhone.
- Create 3D manipulative models appropriate for the chosen 3D platform. Document how this is done.
- Provide source code required for creating 3D manipulative models, with documentation and tutorials. Package it all up in a toolkit.
- Develop an ATA visualization application that runs under Linux that allows walk-throughs, viewing from any angle.
- Incorporate real time antenna meta data so the antennas point where they are actually pointing, antennas under repair are tinted yellow, antennas that fail during observation (don't track) show up as red.
- Enable clicking on any antennas to show vital antenna stats taken from the meta data.
- Provide any source code required for any of this capability, with documentation and tutorials. Package it all up in a toolkit.
Deliverables
There will be 2 main deliverables:
- A toolkit for taking a 3D model information file and creating the correct meta data files. The toolkit will also provide the resources and documentation to create the entire 3D scene. This toolkit could be used for other projects to create their own 3D scene.
- A 3D java program that allows you to position yourself anywhere within the ATA and view the antenna state information easily.
An extra addition that may be nice is to have one or 2 characters walking around the scene as if they are the technicians.
Gabriel Burceanu created a very rough, but very cool, YouTube video showing how the antennas would be placed in a terrain. See his YouTube Video http://www.youtube.com/watch?v=mDs854zRNW0 titled Antenna3D. Please have a look.
Stage 1
- Discuss requirements.
- Create a Requirements Document. See http://setiquest.org/wiki/index.php/Virtual_3D_Antenna_Array_Visualization_Toolkit_Project_Requirements
-
Discuss project testing. Should we use JUnit?Yes we should. - Learn how to use JMonkey. Document. http://issues.setiquest.org/issues/292
- Develop an architecture.
- Develop an initial project plan. initially sketch out the Stages.
Stage 2
To be determined (TBD)
Stage 3
To be determined (TBD)
Stage n
Project deliverables
Project Documents
- Testing code/JUnit/CppUnit - General Procedures
- Introduction to JSON
- Git forking, git commands, and pull requests
- 3D Project Specifics
- Introduction to JMonkey
- Project Requirements
- Architecture
- Project Design Document
External links
- https://github.com/setiQuest/3D-Antenna-Virtualization (source code)
- http://issues.setiquest.org/projects/3d-antenna (issue tracker)
