James Webb Space Telescope on NetBeans

Great screenshot by Sean Phillips, Duke's Choice Award winner, that provides a visualization of the James Webb Space Telescope Contact Analysis. It uses JavaFX 8 and NetBeans Platform 8 as its basis.

Comments:

Technically it's a prototype but it is fully functional.
The middle pane (green bars) is a Gantt like chart. The green represents any time where a Ground Station establishes Bi-directional contact with the spacecraft (simulated). All the contact information is stored in Contact Report files generated via simulation. These and other files are managed via custom file MIME Types and a custom NetBeans project type. This enables me to create a project action which scans the project for Contact Reports and builts the Gantt chart above.
The Gantt chart is actually a custom JavaFX ScatterPlot with "enhanced" features. For instance if you hover over a data item in the Gantt it highlights it and provides a Hover bubble (shown) with additional information. This is just a label but you can put anything you want there with enough stacking trickery.
The coolest thing in my opinion is that if you click on the data item an onClick handler uses the custom MIME type and the lookup to open the containing Contact Report file and jump to the line.
3D render is handled by a custom MIME type and the MultiView support with WorldWind as the engine. It was a plugin I already had written for other efforts.

Posted by Sean Phillips on February 09, 2014 at 11:47 AM PST #

This is just a protoype at the moment but it is fully functional.
The middle pane is a custom JavaFX component that displays a Gantt style chart. The green bars represent any time a ground station makes bi-directional contact with the spacecraft. The Gantt chart is actually a custom scatterplot with some "enhanced" features. When you hover over a data item it highlights and hovers an additional information bubble. Clicking the data item opens the containing contact report file and jumps you to the data line in question. All contact info is simulated and output into distinct report files. Custom MIME types and a custom NB project type manage it all and allow me to CM the entire collection. The 3D is done using WorldWind.

Posted by Sean Phillips on February 09, 2014 at 11:53 AM PST #

It might also be interesting to note the performance: 150K data points in 14 different files loaded, parsed, sorted. About half of those are then added as XYChart nodes to the "Gantt" chart and then rendered. All in about 15 seconds on my laptop.

I use a Stream to parse and reduce the individual file lines that the NetBeans Platform FileObject type returns to me. Then a JavaFX concurrent <Task> type converts each type to a XYChart.Series type with the appropriate custom DataNode. The completed chart is then added to the scene and embedded into a TopComponent via a JFXPanel.

I've been playing with a way to convert the code that converts the data points to XYChart.Series from an Iterative nested for each loop to a parallel stream. This would leverage all the cores simultaneously and would dramatically improve render time.

Once converted and rendered on screen performance is great.

Posted by guest on February 09, 2014 at 01:43 PM PST #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Geertjan Wielenga (@geertjanw) is a Principal Product Manager in the Oracle Developer Tools group living & working in Amsterdam. He is a Java technology enthusiast, evangelist, trainer, speaker, and writer. He blogs here daily.

The focus of this blog is mostly on NetBeans (a development tool primarily for Java programmers), with an occasional reference to NetBeans, and sometimes diverging to topics relating to NetBeans. And then there are days when NetBeans is mentioned, just for a change.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today