GreenLight BlackBox 2.0
Recent application for the GreenLight project, allowing users to visit the BlackBox virtually while observing live data from the physical BlackBox, such as power consumption and temperature readings. This allows non-obtrusive observation of the data, which could otherwise be affected if one were to enter the actual BlackBox. Additionally, a user can look at historical data of the components, with an effective "4D" display in which a range of data (spanning many days) is shown all at once via color gradients. The 8 racks within the Sun Data Center (the BlackBox) are populated with the components/servers/computers that are actually there via querying an up-to-date database of the hardware specs, along with the up-to-date energy statistics.
Phase 1 - John Mangan
- Load in BlackBox
- Load in racks/doors/waterpipes/electrical within box (separate entities)
- Racks & doors interaction/animation
- Populate the racks with hardware components from flat files
- (High-level) Config file mapping for components to textures -- No more need to make individual server models.
- Update hardware data from remote site (message sending instead of file reading, no NFS delay)
- Transparency mode for non-component entities
- Read in power consumption data from remote site, store it meaningfully, and display it via a color relative to expected value range for the component
- Selection interface to target specific components in the racks (non-selected components are transparent)
- Selection interface extended to allow cluster selection (clusters defined by name in the config file)
- Heuristics for expected min/max wattage value per component in the racks
- Visual mouse/wand over effects: scale up components in rack
- Visual mouse/wand over effects: re-color doors/racks
- Read in power consumption data from DB over a range of time
- Display power consumption for a range of data via a color graph across the face of each part (via shader)
- Handle component transparency via shaders
- Legend added to 'Power Consumption' submenu which defines the color gradient and outlier cases
- Toggle as to whether or not to show texture faces (useful to turn off textures when looking at historical data)
- Demo mode, which will load default textures on rack components when active
- Created a List MenuItem (MenuList) for the general Menu system (and used to create timestamps)
- Poll database for a user-set time range via start & end timestamps
- Toggle to determine color gradient values based on the available data for each individual item, as opposed to the standard min/max for that cluster type.
Phase 2 - Alfred Tarng
- Runs through osgEarth
- Displays Blackbox in correct place on campus
- Placed in correct position (lat/long for center of box: 32.874264,-117.236074).
- scaled, oriented
- Added menu item to Blackbox menu which will change the camera to a place in front of the container
- Created action button under Blackbox menu with label "Go to Model" or similar
- Move camera from current position to new position on planet, looking at Blackbox from south side
- Displays Blackbox in correct place on campus
- Added level of detail support (LOD): distinguish three zones: out of sight, in sight, within reach
- preFrame will be one of three callbacks (withinImage:Screenshot-4.png reach). Two more will be available for "in sight" and "out of sight"; move respective code from other parts to respective callbacks
- Added new code to support "out of sight" representation, for instance cube or sphere or similar as placeholder for Blackbox (eg, billboarded low-res texture)
Phase 3 - Alfred Tarng
- Added sound with new Linux audio server: sonify recorded data, alarm sound when box overheats/turns off
- pitch changes according to the power consumption at a given time.
- Power consumption is now animated when selecting individual components
- Animation Widget for kernel (menu item, new popup window)
- Some Notes for future developers, the sound files need to be specified via the configuration file, as well as position attributes when integrating with the earth.
- There is a sample configuration file for reference on the git repository.
- Integrating new Model of NexCAVE and Vroom models.
- Incorporate new smooth camera transition code.
- Improve mechanism of LOD switching behaviour.
- When above max expected value, create a particle system to show the unit is smoking (as if burning up)
- Temperature zones (pull data and display)
- Temperature zones over a range of time from the past, animate through
- Possible cluster view? Wattage per cluster, along with the graph node/edge concept from Covise 199 project?
- John Mangan - Phase 1
- Alfred Tarng - Phase 2
- Philip Weber
- Andrew Prudhomme
Initial Concept Base: