Skip to content

yocontra/luma.gl

 
 

Repository files navigation

version build downloads stars

luma.gl

luma.gl: A JavaScript WebGL2 Framework for Data Visualization

Overview

luma.gl's provides efficient and easy-to-use WebGL2-based building blocks enabling high-performance GPU-based data visualizations and computations on your browser.

See Examples and Documentation. Change Log.

luma.gl Design Goals

High Level Design Goals

  • Focus on data visualization - While generic, luma.gl prioritizes features that enable efficient rendering of large data sets or that support improved visualization techniques. In practice this means that luma.gl is an early adopter of techniques like instanced rendering, WebGL2 and GPGPU techniques.
  • Celebrate WebGL Simplify the use of WebGL but do not hide it from the programmer. Learn luma.gl and you learn WebGL.
  • Simplification, not abstraction Provide an API that simplifies WebGL usage without hiding WebGL from the programmer. Abstractions are good but they should be built on top of luma.gl.

Secondary Design Goals:

  • Focus on Shader Programming - Let's efficiently create, organize and debug shader code.
  • Interoperability - No "magic" global state that gets in the way of interoperability. All components work with a standard WebGLRenderingContext and can used together with components from other frameworks (e.g. stackgl).
  • Debugging Built in support for debugging and profiling WebGL and GLSL haders.

Usage

  • deck.gl builds 3D map visualization overlays on luma.gl.

History

luma.gl started out as a fork of PhiloGL however no effort has been made to maintain compatibility with PhiloGL-based applications.

Installation

npm install luma.gl --save

Documentation, Lessons and Examples

Luma.gl comes with 16 lessons, a number of examples, and a full set of reference documenation.

To run examples:

git clone git@github.com:uber/luma.gl.git
cd luma.gl
npm install
npm start

This builds the luma.gl bundle, starts a small local server, and opens a browser window on a welcome page, allowing you to run to all lessons and examples.

Developing

Use npm start to run the test server, it will open a web page from which you can access the examples and lessons, and automatically update when you save modified source files.

Testing

Testing is performed on Travis CI and using a precommit hook. Local testing is supported on three environments

  • npm test - runs npm run test-headless
  • npm run test-browser - Tests in your browser, may be helpful to quickly debug test case failures since it autoreloads on changes and gives you full access to your browser's debugger.

When adding new features, or modifying existing ones, carefully consider if unit testing can be provided.

About

A JavaScript WebGL Framework for Data Visualization

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 92.6%
  • CSS 3.7%
  • GLSL 2.1%
  • HTML 1.6%