Presentation Questions

Tuesday, November 1, 2011Posted by The group


  1. How do you do the animation in the movie?
    • In playback mode, a Player object keeps track of real time, maps it to playback time (we use a playback speed of 5 days per second), and maintains a sliding window of sightings to draw. Sightings are loaded from the database in chunks, making sure that the latest sighting in the window is ahead of the current playback time. Sightings are dropped out of the window when they are older than the fadeout threshold (5 days).
    • When drawing a frame, the renderer iterates through the current window of sightings, computing their age compared to the current playback time. When the age goes below 0, i.e. into the future, it stops iterating. For each sighting in the active timeframe, a dot is drawn. The alpha value is inversely proportional to the age (fully opaque when the dot appears, fading to fully transparent when it reached the fadeout threshold). If the age is less than one day, a stroked circle is also drawn; the circle expands linearly, while its opacity fades out quadratically. This produces the "raindrop" effect that draws attention to new sightings as they appear.
  2. Where did you get the weather Data? Is it for zipcodes, cities or states? For everyday, month or year?
    • Data came from, it corresponds to City,State AND date/time (hourly) for where the sighting occurred.
  3. (Our group)
  4. How did you correlate the weather data?
    • We have not done correlation by weather conditions, but we did correlations by season of the year. We displayed weather condition data in the sighting detail view.
  5. How did you implement your "explosion" effect on the playback?
  6. How do you do the animation in the movie?
  7. How did you make the dots animations when clicking on the play button? Why did you use so bright colors on the graphs opposed to the black background?
    • For the animation, see the answer to group 1.
    • For color choice, it matches to the colors used on the map. Each color matches sighting type, so changing colors for the sighting groups will cause inconsistency.
  8. How do you handle maintaining performance while drawing so many points?
    • In the cluster view, each state's cluster is rendered into a buffer and treated as a whole.
    • In the individual location view, rendering is cached into an overlay layer. For each map tile we render a translucent overlay tile; rendering is done on demand in background threads, similarly to how tiles are loaded from the server. To accelerate rendering a given tile, we only draw locations within the tile (plus a margin, so that dots that are close to the edge have each half drawn in the appropriate tile). We use R-trees as a spatial index to find the right locations quickly. The overlay layer is purged and automatically regenerated when the filter conditions change. Since this system integrates pretty closely to how ModestMaps works, I am thinking of merging it into MM so that others can take advantage of it. While writing it, I was also able to tighten the conditions for loading tiles, and that change has already been incorporated into ModestMaps.
    • In the animation view, we keep track of sightings within a sliding window of five days, which limits the number of dots that we need to draw in any given frame.

Release notes

Monday, October 31, 2011Posted by The group


It-Came-Out-Of-The-Sky helps to visualize UFO sightings using maps and stacked bar graphs. Data that is preloaded in the application is in contingent U.S and date range is between 2000 and 2011. Application helps user to find correlations between UFO sightings and date/time, geographical locations, population density, and distance from airports, weather stations, and military bases. Application allows the user to see aggregates sightings data and specific details about the sighting.

Can't wait for UFO sighting accounts? TRY THEM OUT NOW, by clicking on the right side bar! You can view UFO sighting accounts by shape and cities.

Youtube link

Color blind test results:


Week Three Point Five

Monday, October 31, 2011Posted by The group


  • Camillo
    • Wrote web service to support the applet (handles db queries, proxies map tile downloads)
    • Added WebDataSource for use in applet (uses JSON)
    • Database updating & rejiggering
    • Implemented playback feature
    • Performance improvements across the board (DB access, rendering, etc.)
    • Implemented state cluster view
    • Force-based algorithm for cluster positioning
    • Distance computations using haversine formula
    • Render overlay buffers in background
    • Factored out DB access layer
    • Graph view
  • Priscilla
    • Modified GraphView and created GraphContainerView: Add legend area and draw additional graphs.
    • Interface improvements, such as selection of icons, colors, fonts, information displayed to the user, among others.
    • Highlight locations near to airports/weather stations/military bases
    • State rollover: Information box.
    • Show locations of airports/weather stations/military bases
    • Website work
    • First version of Playback funtionality: displayed places by year with timer
  • Eugene
    • Website development
    • Added searching for sightings directly on the website
    • Filter non-US data
    • DB: add population density
    • Data collection improvements
    • Rails advice

Week Three

Friday, October 28, 2011Posted by The group


  • Camillo
    • Fast filtering
    • Updated SQLite driver, solving slowness problem
    • Faster reloads on filter changes
    • Faster mourseover using R-tree
    • Faster buffer rendering using R-tree
    • Synchronized panning and zooming of overlay
    • Buffer rendering into overlay tiles
    • Parameterize sighting types from DB
    • New optimized DB access layer
  • Priscilla
    • Created ScrollList: Customized object which list the occurred sightings in a specific place
    • Created VScroll : Vertical scroll that is part of scrollList.
    • Updated SightingDetailsView: Functions to display the detailed information of a specific sighting (the one selected from the scrollList).
    • Updated MapView: Make sure that moving and zooming the map and drawing information box only occur when the mouse is over the map. Drawing function for different types of sightings (drawn icon depends of the type of sighting)
    • Worked on the first version of filter places&sightings based on dates & times specified by the user.
    • Modifies database queries to retrieve number of UFO types & UFO type by place.
  • Eugene
    • Collected / processed weather data, weather stations data.

Week Two

Friday, October 21, 2011Posted by The group


  • Camillo - Worked on animations, created main project plan, assisted other group members with various isssues that arose
  • Priscilla -
    • Create checkbox
    • customized object which draws a checkbox with a text and/or color/image
    • Create HSlider
    • customized object which draws a horizontal slider with two marks (to specify ranges of values)
    • Create SettingsView
    • View that display the different options the user can choose to visualize on the map. (It includes: Year,Month & Time sliders, Type of UFO checkboxes group and airport checkbox, & title that specified what is showing on the map.)
    • Modified MapView: Functions to draw sightings and airports, the size of the icons depends on the current zoom level. Function to show a information box when the mouse cursor is over a sightings
    • Search for icons to be used in the project.
    • Create SightingDetailsView: customized object that will display all the sighting information as it was original reported. Interaction was created..when the user clicks on a sighting the view will appear. Content of the view is not ready yet.
  • Eugene - Built ORM like interface to access database through Java objects, worked on data integrity / optimization by adding indexes and integrating with Google and Bing APIs
  • Group - Come up with a higher level categories (7 types) for the many different sighting types. Had two meetings regarding general project layout and interface design

Week One

Friday, October 14, 2011Posted by The Group


  • Camillo - Set up a repository on GitHub with initial code for view hierarchy, animation and miscellanous utilities.
  • Priscilla - Gather the location data by county and places. Gather the population density by state, counties and places. Download the modest_maps_interactive to understand how it works.
  • Eugene - Wrote scraper that downloaded, parsed data from:, and inserted it into database. Setup website.
  • Group - Had two meetings regarding general project layout and interface design