jonobr1/two.js

A renderer agnostic two-dimensional drawing api for the web

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 37 minutes ago
Added to GitGenius on September 7th, 2026
Created on September 5th, 2012
Open Issues & Pull Requests: 44 (+0)
GitHub issues: Enabled
Number of forks: 462
Total Stargazers: 8,656 (+0)
Total Subscribers: 152 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 12.5 hours
Mean response time: 80.5 days
90th percentile: 290.9 days
Tracked items: 107

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 29% of open issues come from outside the core team — the tracker reads mainly as internal planning. Only 1% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 31
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,277 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

  • enhancement (51)
  • bug (40)
  • question (32)
  • stabilize (3)
  • duplicate (1)
  • output (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Two.js is a renderer agnostic two-dimensional drawing API for the web.

Two.js solves the problem of writing graphics code that must work across different rendering contexts by providing a unified API that abstracts away the underlying renderer. The same code can target WebGL, Canvas2D, or SVG without modification, allowing developers to choose the best rendering backend for their use case or switch between them as needed. The library provides a scenegraph-based approach to managing two-dimensional objects and animations.

The tool suits projects that need cross-platform 2D graphics capabilities, particularly those that benefit from rendering flexibility. It works well integrated into modern JavaScript frameworks through ES6 imports and is compatible with bundlers like webpack and esbuild. The library also supports headless environments through Node Canvas, enabling server-side rendering and frame generation. Developers can customize builds to include only the renderers they need, reducing file size when not all rendering backends are required.

The project maintains active issue tracking and provides multiple channels for documentation and examples. Development includes ongoing refinement of the build system and module architecture, with tree shaking identified as a planned improvement. The codebase supports both traditional script inclusion and contemporary module-based workflows, reflecting an effort to remain compatible with evolving JavaScript practices.