Data Visualization with D3 Javascript

Abdullah Hussain
Search Hacks
Published in
7 min readApr 6, 2016

Introduction:

WebGL is a JS API that renders graphics intense, interactive 3D computer animations and 2D graphics within a compatible web browser without using any plug-ins or third party render software development entities. Example usage for WebGL is included in this article. WebGL, nowadays is an integral component of the modern browser. It allows accelerated usage of physics effects and image processing features of the GPU to manipulate vectors in the HTML5 Canvas component of a webpage. Elements of WebGL can be mixed with other parts of the HTML webpage to create immersive backgrounds and highly responsive, real-time graphics that captivate the visitor’s attention. WebGL programs comprise of a control code written in JS and Shader code that is executed on a client’s GPU. Currently, WebGL is designed and maintained by the Khronos Group; an American non-profit member-funded industry consortium based in Beaverton, Oregon.

In fact, initial concept evolved as a spin-off from the Canvas 3D experiments started by Vladimir Vukicevic at the Mozilla Corporation. However, the official WebGL Working Group was initiated by the Khronos Group in 2009 with participation from browser giants like Google, Apple, Opera and Mozilla. Since 2012 the chair of the working group is Ken Russell.

Note: Need some professional Web Design help?

Not yet . . ? Check out our post on AMP (Accelerated Mobile Pages).

Structure and Usage:

Structurally, the WebGL 1.0 (introduced in March 2011) was based on the OpenGL ES 2.0 and uses the DOM interfaces to access the HTML Canvas element. WebGL expresses Shaders directly in GLSL and does not have fixed-function APIs (discontinued since OpenGL 3.0). However, this functionality can be provided manually in the JS.

The WebGL API is most effectively used in conjunction with some utility libraries that handle different graphics functions. Loading scene graphs and most popular 3D objects are not included in the standard libraries. However, they can be added to implement market standard functionalities.

A Steadily Increasing List of High Level Frameworks for WebGL Includes:

Support from Game Engines:

As well as a support from game engines such as Unreal Engine4 and Unity 5. The Stage3D/ Flash-based Away3D high-level library also has a port to WebGL via TypeScript. Another honorable mention is Sylvester.js, a light library that provides vector and math utilities for shaders used in conjunction with WebGl specific extension glUtils.js.

WebGL also has some 2D libraries like Cocos2d-x or Pixi.js, which were implemented this way for performance reasons. The WebGL based 2D libraries fall back to HTML5 canvas when WebGL is not available.

Using WebGL removes the rendering bottleneck by giving almost direct access to the GPU Performance limitations in the JS implementations. Software development for WebGL scenes involves using a regular 3D content creation tool and exporting to a browser readable format using Autodesk Maya or Blender etc. Mozilla Firefox also offers built-in WebGL tools (since its version 27), that allow editing vertex and fragment shaders.

Want To Know More About Javascript Checkout D3JS

Application in Software Development:

The earliest adaptations of WebGL can be traced back to the Zygote Body( formerly Google Body) a web application by Zygote Media Group that renders a manipulate-able 3D anatomical model of the human body. And can be attributed to Auto-desk porting their web applications (such as Fusion 360 and Auto-CAD 360) to the cloud.

Development on the WebGL 2.0 specification started in 2013. This specification was based on OpenGL ES 3.0 and an editor’s draft states it as near completion.

https://blog.mozilla.org/futurereleases/2015/03/03/an-early-look-at-webgl-2/

WebGL Example Usage:

WebGL is a progressive field of interactive design and Software development where a lot can be accomplished with the untapped computing potential. Some of the most notable and praise –worthy examples of creative usage of WebGL have been stated below.

(Note: these might not work on your computer if you are using an outdated browser or have an un-supported graphics card.)

Curated below are a few more practical and stunning implementations of WebGL from all around the world.

HelloRacer

A high-end interactive car simulation in a white space. This WebGL Example is made with love and care by HelloEnjoy

Attractors Trip

Using Martin’s Hopalong formula, this immensely captivating WebGL Example graphics brings a self-induced hallucination.

Aquarium

An interactive Software Development of sub aquatic 3D models with high quality textures, scene animation, pixel shader animation, reflections, refraction and caustics.

Animated Volume Particles

A simple Glow that operates on a few psychological phenomena and animated animals constructed by 3D Software Development of particles using float textures and frame buffers

Red Shooting hood

A browser game with red riding hood shooting the big bad wolves that come to gnaw at her. Fun and interactive to the very last detail.

Pulpo

Simple graphics and animation that is made to impress. A minimalist rendition of a Pulpo (octopus).

Surface

Change the magnitude, auto orbit and induce water-like elasticity functions on your personal images with drag and drop interface in this WebGL Example.

Undulating Monkey

An inspiring and creative experiment that features a monkey face being undulated on variable axis and with variable speeds and magnitudes

The Biodigital Human

The Biodigital Human is an informative rendition of the various Human body Systems and the possible diseases that may occur in a specified organ.

Dia De Muertos 2015

An interactive depiction of famous Mexican culture in a WebGL Example. An animated Mask with interactive features

Traveling Wavefronts

An extended Reaction-Diffusion system that uses only one 8bit color channel. A final representation shader recolors the red color patch and takes it as a height map for the lighting too.

Blocky Earth

A representation of terrain, using cubic blocks to render google maps, with texture and elevation. It shows your current location or a specific location, in different levels of zoom and sizes.

A Journey through Middle-Earth

Walk in the footsteps of heroes, join the epic battle and explore locations from the film trilogy in an immersive web experience built for Chrome. For your laptop, phone and tablet.

Lathe Machine

A virtual lathe machine. Select your material and hold SPACE to get it to spin. Use your left mouse button to shape the cylinder in this WebGL Example.

Pearl Boy

Pearl Boy was created to show the possibilities of Goo Engine and HTML5/WebGL. By using the performance of WebGL and hardware accelerated graphics, combined with our JavaScript game

Endless Forest

A music Visualization that occurs in an interactive and never ending forest.

Blossom

Playing with particles and trying to make the rotation in the shader.

3 Dreams of Black

“3 Dreams of Black” takes you on a journey through three dream worlds constructed through a combination of rich 2D drawings and animations interwoven with interactive 3D sequences.

Ellie Goulding’s Lights

An interactive experience with Ellie Goulding’s music video in this example of WebGL.

Ctrl+[P]aper

This Web GL website that allows anyone to create a paper toy in 3 easy steps. Once you’re done, print the PDF, cut, fold and glue by following the instructions.

A Holiday Message

This is a beautiful 3D scene that has holiday greetings on it where you can move a long using your mouse.

Find Your Way To OZ

Find Your Way to Oz is an interactive journey inspired by Sam Raimi’s feature film, Oz The Great and Powerful. An excellent WebGL Example.

WebGL Water

A real-time pool of water rendered in this WebGL Software Development project with reflection, refraction, caustics, and ambient occlusion. The pool is simulated with a height-field and contains a sphere that can interact with the water’s surface.

Note: For the latest and greatest trends in web design technologies and professional practices visit the series on “Web Design” or check out Pyxel’s page on Web Design

Originally published at www.pyxel.co.uk on April 6, 2016.

--

--