Real-time wind visualization in WebGL

This project was awarded to getsalmanonline for $555 USD.

Get free quotes for a project like this
Employer working
Awarded to:
Project Budget
$250 - $750 USD
Total Bids
Project Description

Data source - A simple data file accessible by HTTP request, refreshed every 1 second

Area to be visualized - Hungary (Central-Eastern Europe)

Background map – Pixel-based, very high resolution, „flat map” (Supplied by us). No spherical mapping or special projection needed.

Visualization space – should be freely definable when inserted into a web page, between low-res mobile platforms to Full HD.

User interaction – only vertical look-down, with zoom in-out available (1st version), without 3D free-fly (only to be supported in later versions).

Visualization by – flying, semi-transparent, bending arrows, with slowly diminishing trails and gradient colors to be changed depending upon relevant wind speed.

Number of animated arrows – Should dynamically change depending upon the currently available computing power of of the end user. Animation should run at 15 FPS minimum.

Source data – A file, refreshed every second, containing a variable number of lines, each representing a real-time wind measurement point (approx. 150-200, but can be as high as 300 in the next years). Each line contains real-time data in the following format –
id longitude latitude wind_direction wind_speed wind_gust
(%d %f %f %d %d %d)

Mapping coordinates – simple linear (rational) projection is OK, no special (spherical, or other) mapping is needed (area is only 500x250 km, no significant errors arise).

Real-time speed & direction interpolation – Arrow speed, bending and relevant motion vectors (x,y) should be mathematically interpolated in real time for each arrow, wherever the given arrow is currently located between actual measurement points. This step my require significant amount of computing power. The Interpolation must include at least the closest – (surrounding) 4 to 5 measurement point’s real-time data, obviously taking their X,Y vectors into account by normal mathematical interpolation (weighting based on arrow distance from each surrounding, closest measurement point – reverse squared or exponential proportional method).

Important note – selecting the closest (surrounding) measurement points for any X,Y coordinates may turn out to require a lot of computing power, slowing down the animation. If this proves to be the major obstacle, the server can pre-calculate the indexed groups for each given pixel at a given resolution level to be used for the interpolation (that only needs to be once in a session, if the number or coordinates of the available measurement points change).

Titles and popups – Actual measurement points should be shown by a small icon, that can change in real-time (for example, a small rotating anemometer can change to a warning, yellow, orange or red rectangle, with wind gust warning). If the user moves the cursor over a given measurement point, additional information (ie. location, average and max speed, company name who operates the measurement point).

Later functions (only to be included in higher versions, which need not to be implemented in v 1.0) - Free 3-D movement for the user in the visualization space; 3-D background (height data also supplied by us), multiple layers of arrows, etc.

Awaiting offers and possible questions.

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online