GithubHelp home page GithubHelp logo

kryndex / luma.gl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from visgl/luma.gl

0.0 2.0 0.0 99.14 MB

A JavaScript WebGL Framework for Data Visualization

Home Page: http://uber.github.io/luma.gl/

License: Other

JavaScript 98.39% HTML 0.03% GLSL 1.58%

luma.gl's Introduction

version build downloads stars

luma.gl

luma.gl: A JavaScript WebGL2 Framework for Data Visualization

Overview

luma.gl's primary focus is to provide a set of efficient and easy-to-use WebGL building blocks enabling high-performance browser-based data visualizations.

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 [email protected]: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.

luma.gl's People

Contributors

ibgreen avatar wwwtyro avatar mikolalysenko avatar manassra avatar geyang avatar heshan0131 avatar gnavvy avatar balthazar avatar philogb avatar mpcm avatar vschs007 avatar apercu avatar pessimistress avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.