regl-project/regl

👑 Functional WebGL

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 35 minutes ago
Added to GitGenius on September 12th, 2026
Created on February 23rd, 2016
Open Issues & Pull Requests: 127 (+0)
GitHub issues: Enabled
Number of forks: 327
Total Stargazers: 5,579 (+0)
Total Subscribers: 81 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 1.4 hours
Mean response time: 20.1 days
90th percentile: 119.0 days
Tracked items: 6

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,647 days
Stale 30+ days: 1
Stale 90+ days: 1

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

regl is a functional WebGL abstraction layer that simplifies GPU programming by eliminating shared state management.

The core problem regl solves is the complexity and error-proneness of WebGL's stateful API. Rather than manually managing WebGL state across draw calls, regl introduces two fundamental abstractions: resources, which are handles to GPU objects like textures and buffers, and commands, which represent complete WebGL state for a specific draw operation. When you define a command with static and dynamic data, regl compiles it into optimized JavaScript code, removing the need to manually track and update WebGL state between calls.

Developers should choose regl if they want to write WebGL applications with significantly less boilerplate and fewer state-management bugs. It suits projects ranging from simple visualizations to complex graphics applications where the reduction in shared state overhead matters. The tool has no dependencies, making it lightweight to integrate. It can be used via npm or as a standalone script tag, and developers using npm can enable runtime error checking and source maps during development by using the browserify debug flag, though these are stripped from production bundles to minimize size.

The project maintains an active community presence with a dedicated chat channel and a gallery of examples demonstrating various use cases. Development activity shows consistent engagement with the codebase, with regular updates and responsiveness to issues. The maintainers provide comprehensive documentation and have invested in making the tool accessible through multiple distribution channels and development workflows.