The WorldWide Telescope has several ways for developers to engage with the software. Web developers can embed a WWT control on their website, windows developers can access and control layers in the windows client, and convert images to formats WWT can render. Expert developers can contribute directly to the WWT code base, the open source home of WWT is the wwt-home meta-repository on GitHub.
Windows DevelopersClick the title below to expand or collapse the panel.
- Tile Pyramid SDK, Samples and Documentation
- Tile Generator Tool
- LCAPI Sample
- Tile Service Sample
- Community Service Sample
- Sphere Toaster Tool
- Study Chopper Tool
What you can do:
- Reproject image data into tile pyramids suitable for visualization in WorldWide Telescope.
- Turn global or local xyz data into image tile pyramids.
- Process Digital Elevation Models (DEM) into WWT compatible DEM tile pyramids.
- Share the tile pyramids with your colleagues.
- Create your own community containing tours, data and links that your colleagues can easily access.
- Use the Spherical Toaster and the Study Chopper to TOAST images to view in WWT.
- Add custom data to the Layer Manager of WorldWide Telescope.
- Connect your database and application specific processing with WorldWide Telescopes Visualization.
- Remotely control WWT from other applications.
- Windows 7 (Ultimate or Enterprise recommended), Windows Server 2008 R2 (Older versions of Windows are not recommended)
- WorldWide Telescope Windows Client (Version 3.0.1 or above)
- .NET Framework 4.0
- Visual Studio 2010
- Web Deploy Tool (this is required if the Sharing Service tool is to be deployed)
- IIS with default web site and default app pool configured to use .Net 4.0
- A 64-bit dual-core processor is recommended, though a 32-bit is sufficient.
- 4 GB of physical memory
Data Tools Guide
The following guides are aimed at software developers who already have familiarity with WWT.
Control Layers in the WWT Windows Client
What it can do: In addition to using the layer manager interactively, you can use scripting and programming languages to send commands and data into WWT from your own code driving the visualization of data in WWT. You can write code that can read data from a database, or create it mathematically and send it to WWT to render. In addition almost all of WWT functionality can be controller through the LCAPI. This means you can create control mechanisms for automated or interactive control of WWT through your own hardware and software. A good example of the use of the LCAPI is the ADS All-Sky Survey as seen in WorldWide Telescope, at www.adsass.org/wwt/.
Skills Required: You need to be familiar with the programing language or your choice, use the LCAPI documentation, and learn how to use HTTP request to send and receive data from WWT. There is also a library called Narwhal that provides a .NET wrapper and high level programming features for those who use .NET. Any language that can call HTTP web services can control WWT, and a Python interface has already been implemented, as pyWWT, (see https://github.com/jzuhone/pywwt).
The SDK currently provides samples for the tiling of image files (.png,.jpg,.jpeg,.tif,.tiff) and xyz files (comma separated containing lat, long and depth values).
The SDK source code is provided so it can be extended to support other input file formats.
- Processing large sets of data is dependent on the amount of memory available in your system. For larger datasets consider increasing the available memory on your system.
When using the Sharing Service with a Community folder that is configured on a remote network location WorldWide Telescope might time-out before the whole payload file is loaded.
In this case reselecting the Community thumbnail in WorldWide Telescope should load the community payload file in stages - several iterations of this may be necessary for a large payload file.
- In LCAPI Sample, when loading a file, "Data visualization Layer" dialog shown by WWT will be hidden behind the LCAPI sample window and will need to be activated manually.
- The Tile Generator tool only supports images with longitude values increasing from left to right and latitude values decreasing from top to bottom.
The Windows client is the most powerful component, and the most complex. It can power desktop visualizations, power walls, or even full dome multi-projector clusters. For developers with the right set of skills, WWT in Windows can be adapted to an even wider set of requirements.
Skills Required: The WWT Windows Client is built in Visual Studio 2013 with the .net framework 4.5x. It uses custom Winforms controls for the user interface, and DirectX11 for the 3D rendering. The interface between the C# .NET code and DirectX11 is the SharpDX library, another open source component. The client also has significant amounts of HLSL Shader code for both rendering and GP/GPU computation (such as orbits, temporal animation, lighting, etc.). There is a significant amount of TCP/IP networking code, as well as a full HTTP server implementation. To modify the core rendering code you need to know advanced 3D & spherical math and 3D rendering techniques similar to that of 3D Game engines. You also need to understand astronomical mathematics.
There is a layer class model that can be derived from to allow new layer types to be defines without having to modify much of the core WWT codebase. This will be the most popular way of extending WWT, and will probably be exposed as a plug-in model for allowing the main-line installations to take 3rd party WWT layers without having to compile them into the mainline code.
WorldWide Telescope Web Control API allows you to integrate WWT into any web data portal, or build mashups to display your own interface and WorldWide Telescope.
- Create custom viewing interfaces
- Add images to the view, with their own annotations
- Add annotations to existing images
- Load in and interact with a VO (Virtual Observatory) table
- Load and play tours
- Change the settings for a view
Note that currently the web controller only applies to the Sky view of WorldWide Telescope, and not the Earth, Planet, Panorama or SolarSystem views.
View the Web Control Script Reference documentation.
Web Control Script Examples
View web control samples on our Samples page
Dig into some more sophisticated examples:
- ImportImage, which uses ImportImage.js
- Spectroscopy in Astronomy, which uses Spectroscopy.js
- Great Observatories, which uses Observatories.js
- Planet Explorer, which uses PlanetExplorer.js
Beside the web API, WWT offers a few web services that are detailed in the WWT Data Files Reference. For example, the ShowImage service allows a web developer to view an astronomical image in the WWT web client.
Examples of ShowImage Service
- AstroPix (click an image and then click "View in WorldWide Telescope" in the upper right)
- Astrometry.net (click a solved image and scroll down and click "View in WorldWide Telescope" on the right)
- The "Paper" of the Future (see Figure 7)