PixiJS is a mature 2D rendering library for the web (npm package pixi.js). Its production purpose is to let developers build interactive scenes, games, visualizations, and creative applications using an object-oriented scene graph and render them through WebGL, WebGPU, or Canvas backends. The core runtime is a modular TypeScript library, not a monolith: users construct Containers, Sprites, Graphics, Text, Meshes, and ParticleContainers, then a renderer collects renderables into instruction sets, batches draw calls through backend-specific adaptors and pipes, and manages GPU resources such as textures, buffers, uniform groups, and render targets via pooling and garbage-collected caches. The repository also includes an asset subsystem with loader parsers, a resolver, a cache, and format detection, plus an extension registry that allows custom systems, loaders, pipes, filters, and backend adaptors to be registered cleanly. Primary entry points are src/index.ts, the Application class with initialization and plugins (ResizePlugin, TickerPlugin, CullerPlugin), autoDetectRenderer, and the Assets API. The library depends on browser platform capabilities (Canvas 2D, WebGL/WebGPU, OffscreenCanvas, Web Workers, fetch) and small npm packages; compressed-texture support shells out to Basis/KTX transcoders. Data flows are asset ingestion (fetch/parse/cache) and GPU command generation; there is no server-side pipeline or ETL component. The codebase shows strong engineering practice: typed extension points, backend abstraction layers, performance-conscious allocation management, dual GLSL/WGSL shader support, and an extensive test suite including snapshot-based visual regression tests across WebGL1, WebGL2, WebGPU, and Canvas. Some deprecation shims and experimental features exist, but the project is actively maintained with recent commits, release automation, and active issue triage.
OpenScreen is a feature-rich, open-source desktop screen recording and video editing application built with Electron, React, and Pixi.js. It serves as a free alternative to Screen Studio, offering native screen capture on Windows (via Windows Graphics Capture, DirectShow, and WASAPI) and macOS (via ScreenCaptureKit and AVFoundation), with a browser-based fallback using getDisplayMedia. The application provides a complete post-production workflow including a timeline for zoom, trim, speed, annotation, and blur regions; automatic captioning using on-device Whisper (via Transformers.js); cursor overlay with smoothing, motion blur, and click bounce; webcam picture-in-picture with mask shapes; and export to MP4 (H.264 + AAC) and GIF with quality presets and a source-copy fast path. Architecturally, OpenScreen follows a multi-window Electron pattern with a main editor window, a floating HUD for recording controls, a source selector, and a countdown overlay. The renderer process communicates with the main process via a unified native bridge IPC channel, which exposes typed services for system, project, and cursor domains. Native capture is handled by platform-specific helper binaries (C++ for Windows, Swift for macOS) that stream video and cursor telemetry as JSON events. The editor uses Pixi.js for real-time compositing of video, webcam, cursor, annotations, and effects, with a spring-based physics system for smooth zoom and cursor transitions. The codebase demonstrates strong engineering practices with extensive unit and browser tests (Vitest + Playwright), internationalization across 12 locales, CI/CD pipelines for Windows, macOS, and Linux builds, and a Nix flake for reproducible development environments. However, the project is explicitly archived and no longer maintained; a community fork is recommended for continued development. The main editor component (VideoEditor.tsx) is notably large (~2000 lines), mixing state management, export logic, and UI, which presents a maintenance challenge. Despite this, many individual modules are well-isolated and reusable, particularly the export pipeline, cursor smoothing, captioning logic, and undo/redo hook.