2.1.1 • Published 11 months ago

bananagl v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

banana.gl 🍌

banana.gl is a small, low-level WebGL library designed as an alternative to three.js for developers who seek a more hands-on approach without diving into the complexities of bare WebGL. Honestly, it's just a fun project for me after using three.js for a while.

Installation

To install banana.gl, run the following command in your project's root directory:

npm install bananagl

Roadmap

The following list is a rough roadmap of what I want to achieve with banana.gl. It's not a promise, but rather a list of things I want to implement:

Core

  • Lightweight and low-level API
  • Window management - split canvas views with individual cameras and controls
  • Scene
  • Shader compilation
  • Per-model uniforms
  • Camera (switchable between perspective and orthographic)
  • Mouse controls (map-like)
  • Keyboard Shortcuts
  • Resource Disposal (could be better though)
  • Transparency
  • Selection Management
  • Textures
  • View frustum culling
  • Shadows

Data

  • Basic buffer - WebGLBuffer
  • Element buffer/Indexed geometry
  • Atttributes
  • Instanced attributes

Picking

  • Built-in BVH for triangular data (worker-based)
  • Built-in BVH for line data?
  • Built-in BVH for point data?
  • Ray-based picking for triangular data
  • Range-based picking for triangular data
  • Texture-based picking

Render Pass

  • Strategy minimizing GPU program switches
  • Per-model uniforms updated only when needed
  • Indexed triangle mode
  • Triangle mode
  • Instancing mode
  • Indexed Line Mode
  • Line mode

Nice to have

  • Post-processing pipeline
  • Optimized for scenes with funky coordinates (e.g. too large or too small)
2.1.1

11 months ago

2.0.5

12 months ago

2.1.0

12 months ago

2.0.3

1 year ago

2.0.4

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago