Insight3D now available for Java

Java developers have been able to use AGI Components for Java to build analytical applications since our first Java release earlier this year, but Insight3D remained .NET-only, which made it much harder to visualize your results. I am pleased to announce that as part of our 2010r8 release of AGI Components, Insight3D is now available for Java, on Windows platforms.

Similar to our analysis components, our goal in bringing Insight3D to Java was to bring the same classes and methods available in .NET to Java, while remaining natural to Java developers. To achieve this, we used the same translation process that we used to create Java versions of our analysis libraries, plus an additional automated generation system to create the layer bridging the gap between the .NET and Java API that you use and the underlying native implementation. The result is that the bridge layer is as seamless as possible to you when developing your applications.

By automating much of the process, we can keep the available features consistent between the .NET and Java versions. However, for the first release, certain features have been left out - but only temporarily. Specifically, the 2010r8 release does not include:

  • The Platforms.Graphics and Tracking.Graphics assemblies.
  • KML support.
  • PDTT terrain file conversion.
  • The Bing Maps for Enterprise and WMS-C web imagery overlays.

Future releases of AGI Components will bring these features to Java, and our goal is to release new features in both .NET and Java simultaneously, just as we do for our analysis components.

The system requirements for Insight3D for Java are the same as the rest of AGI Components for Java, with the same additional requirements for operating system and video card as the .NET version of Insight3D. We currently provide an AWT/Swing component for Insight3D, and a SWT control is planned for a future release.

ADN Code Exchange

If you're developing using Insight3D or any of our components, I'm sure you've come across our developer network: ADN. One area of ADN that is gaining momentum is the Code Exchange, where AGI users and employees share code samples. Recently, I posted two Insight3D examples. A Point in Polygon Test example that shows how to determine if a point on the globe is inside a polygon on the globe. The other example, Drawing Shapes on the Globe, shows how to allow the user to draw polylines and polygons on the globe similar to 3D object editing in STK.

Here's a few screen shots:

Point in Polygon Test:

Drawing Shapes on the Globe:

SIGGRAPH 2010 Follow-Up

AGI had a great presence at SIGGRAPH this year.

You can check out a few of our videos presented at the Dailies on YouTube:

The Fate of the Apollo 13 Crew
Might Have Been Much Different Than Originally Thought

US Airways Flight 1549:
Hudson River Crash Animation With Flight Data

Satellite Collision Visualization:
Technically Accurate Depictions of Debris Breakup and Evolution

Also, I updated the page on our poster, GPU Ray Casting of Virtual Globes, to include the actual poster (2200x2200) in addition to the abstract, video, etc.


If you've read any of my previous posts about SIGGRAPH (2008, 2009), it's pretty obvious that it is my favorite conference of the year (except, of course, for our user's conference). This year, SIGGRAPH is particularly exciting because AGIers are presenting in three different areas:

  • SIGGRAPH Dailies! - Kel Elkins and Branden Coker, members of our production team, are presenting some great AGI videos:

    • The Fate of the Apollo 13 Crew Might Have Been Much Different Than Originally Thought
    • US Airways Flight 1549: Hudson River Crash Animation With Flight Data
    • Satellite Collision Visualization: Technically Accurate Depictions of Debris Breakup and Evolution
    • MADCAT: Graphical All-on-all Conjunction Assessment for Objects in Outer Space

    SIGGRAPH Dallies! is new to SIGGRAPH this year. It is an hour and a half of 60-90 second videos with live commentary from the presenter - a format similar to the popular Technical Papers Fast Forward session. If my numbers are correct, AGI is presenting 4 of the 38 videos, second to only Pixar and Disney, and tied with Texas A&M University. I'm happy to see that the SIGGRAPH community is so interested in our videos.

  • Birds of a Feather - Deron is giving a talk on Insight3D at the Computer Graphics for Simulation BOF. If you're interested in how AGI products can be used in simulations, don't miss it!
  • Posters - I am presenting our poster: GPU Ray Casting of Virtual Globes. This is a next generation rendering technique for ellipsoids - check it out if you like the details behind 3D rendering.


Virtual Globe and Terrain Rendering

Our team has learned a lot while developing Insight3D and the 3D capabilities in STK. Designing a 3D engine that meets the precision and performance requirements for these types of applications is challenging, to say the least. It takes a carefully designed engine to do things like visualize immense amounts of imagery and terrain, and precisely render a massive world.

Deron and I realized that not much has been written about this type of 3D engine, at least not all in the same place, so we decided to start writing a book on the topic: Virtual Globe and Terrain Rendering. This isn't a book on Insight3D or STK specifically but rather a best practices guide for designing and implementing 3D engines for virtual globes, GIS, simulations, etc - all things we've learned by working on Insight3D and STK. If you're interested in this kind of stuff, check out the book's blog as we continue to work on the manuscript and example code.

I should mention that our book is not directly affiliated with AGI. Although, since AGI is such an awesome employer, they are very encouraging about our book project and allowed us to mention it on this blog.

New in AGI Components 2010 r4

We've just released AGI Components 2010 r4.  New Insight3D features include the cylinder triangulator, which computes cylinders for visualization with the solid primitive.

Download r4 from ADN.

GPU Ray Casting of Virtual Globes

Exciting news - our poster GPU Ray Casting of Virtual Globes was accepted to SIGGRAPH 2010.

This was a collaborative effort between the aerospace guys on the DGL team and our 3D team.  We hope these types of next generation rendering algorithms make their way into Insight3D.

Short Abstract: Our work presents a GPU ray casting approach to rendering the ellipsoidal surface of virtual globes that provides an infinite level of geometric detail at frame rates competitive with traditional tessellation and rasterization approaches. This work has application in areas including globe rendering for geographic information systems and video games.


A shaded, ray casted globe correctly interacting with rasterized billboards.  Upper Right: Viewport-aligned ellipsoid bounding polygon.  Ray hits are cyan and misses are gray.  Raster data from Natural Earth and icons from Yusuke Kamiyamane.

Insight3D and C++

I've recently received several customer inquiries regarding using Insight3D and the rest of AGI Components in a C++ development environment. This is often desirable because it allows you to integrate Insight3D and AGI Components into an existing C++ codebase, and can also make it easier to use native C++ libraries in a new Insight3D application.

Not only is this entirely possible with C++/CLI, but Insight3D is capable of being easily integrated into many common user interface frameworks in that environment, including MFC, Windows Forms, and Qt.

As an example, I've posted a simple C++/CLI example using Insight3D and AGI Components in the context of a Windows Forms application to help you get started.

You should note that the above example references assemblies in the default install location for AGI Components for .NET 2010 r2. You may need to update the references in the project to point to your particular install location. From the project properties, navigate to Common Properties->Framework and References, remove the references to AGI.Foundation.*, then add references to the same assemblies from your particular AGI Components installation. Similarly, if you get an error in relation to licenses, you may have to remove licenses.licx from the project and add the licenses.licx file from the Assemblies directory in your AGI Components installation.

Insight3D Webinar

On Wednesday March 24th, we are holding a “How to” webinar on using Insight3D in web-based architectures. The 45-minute webinar features live demonstrations and a 15-minute Q&A. You can register for the webinar here.

After the webinar, you can follow this tutorial on getting started building an Insight3D web application and download the sample code here.

Update: The recorded webinar and materials are now available on AGI's website.

New in AGI Components 2010 r1

The first AGI Components release for 2010 is now available on ADN.  This release includes the solid primitive:  a new primitive for visualizing solids such as ellipsoids and boxes, as shown below.


A new overview, available in our online help, explains how to use the solid primitive, including using visual cues such as the white silhouette edge and removal of back facing lines shown above.  The polyline and point batch primitive now have an optional outline with a unique size, color, and translucency.  This small feature adds a nice visual cue:


Download AGI Components 2010 r1 from ADN and give these new features a try.