Added ggwebgl_interactions() as the structured interaction contract for hover, click, brush/lasso, camera, and Shiny event behavior.
Added renderer-owned hover/click picking coverage for additional primitive types, including vectors, raster cells, and structured surfaces.
Unified Shiny interaction event emission for hover, selection, brush, camera, and timeline/time state while preserving existing timeline update APIs.
Added a CRAN-safe Shiny interaction demo that exercises hover, click, brush, camera, and time events without custom JavaScript.
Added compact point transport and deterministic LOD metadata for large point scenes, plus manual dense-scene smoke helpers that record payload and browser diagnostics without making fixed performance statements.
Added neutral scene-type benchmark helpers and public examples for dense embeddings, trajectory timelines, surface/mesh rendering, Shiny interaction, and static-versus-WebGL workflow comparison.
Added surface/mesh and interactive benchmark vignettes built from small deterministic examples and manual metric schemas.
ggWebGL 0.6.0
Added XGeoRTR and boids4R to Suggests as optional integrations while keeping them out of hard dependencies.
Restored the richer boids4R animation and swarm-art vignette plus the matching htmlwidget example, using installed suggested packages instead of sibling-repository loading.
Restored live XGeoRTR bridge vignette behavior with neutral renderer/backend ownership wording and guarded example code.
Kept shapViz3D as a guarded optional ecosystem example without adding it to package dependencies.
Updated dependency and bridge tests to allow XGeoRTR and boids4R in Suggests while continuing to reject hard dependencies on optional ecosystem packages.
Extended vector layers to support 3D z/zend coordinates while preserving renderer-owned ids, frame/time metadata, and browser selection behavior.
Added distinct orbit and trackball camera control paths with normalized rotation-based camera state.
Upgraded mesh and surface payloads with generated normals, Lambert material metadata, picking ids, wireframe/culling controls, and GPU payload caching hooks.
Expanded the interaction-frame benchmark artifact schema so fixed frame-rate performance statements require device, browser, GPU, commit, primitive-count, and artifact metadata.
ggWebGL 0.3.0
Added exported ggwebgl_magnify_region() in R/magnify-region.R, with panel and inset modes driven by an exact data-coordinate rectangle.
Added experimental vector-arrow rendering through geom_vector_webgl() and ggwebgl_layer_vectors(), using renderer-ready shafts and triangle arrowheads without backend-specific semantics.
Added experimental brush and lasso interaction modes that emit selected primitive ids through Shiny inputs or optional JavaScript callbacks.
Added experimental timeline controls with frame/time filtering for primitive layers plus play, scrub, speed, and reset UI controls.
Added a renderer-generic future-work gallery and contract tests covering the new vector, selection, timeline, camera, mesh, and surface paths.
Added an interaction-frame benchmark schema for frame-rate statements. Fixed performance numbers remain future-facing until generated benchmark artifacts exist for a named target machine.
ggWebGL 0.2.0
Promoted the package from the long-running development scaffold to the 0.2.0 release line.
Added large-scene demo support: persistent point buffers for stable large point-cloud interaction, deterministic count-aware density splats, generic hover labels for point primitives, and a reproducible renderer gallery.
Added generic downstream adapter helpers for renderer-ready point, line, and raster primitive specs, including exported ggwebgl_layer_*() constructors and ggwebgl_spec().
Added package-owned static export surfaces through snapshot_ggwebgl() and compose_ggwebgl_figure(), so publication-style PNG/JPEG captures and simple figure composition can be driven from the package API instead of ad hoc scripts.
Added project evidence documentation and machine-readable evidence summaries for internal release validation.
Added vignette-local figure copies for website articles that need images without referencing files outside pkgdown’s allowed article asset paths.
Tightened the browser-backed static export path around dedicated chromote browser ownership, lighter examples, and explicit optional dependency declarations for export and vignette tooling.
Fixed pkgdown/htmlwidget layout containment by restoring the widget CSS dependency and adding inline canvas-stage safeguards, preventing WebGL canvases from stacking at the top of article pages.
ggWebGL 0.1.0
Expanded the core renderer beyond the initial scaffold with reusable showcase helpers, manual htmlwidget and Shiny smoke tests, and a stronger pkgdown-facing documentation surface.
Implemented and stabilized the main point shader modes: default, density_splat, trajectory_age, and trajectory_age_glow.
Added hover-based sample inspection on top of the existing pan and zoom interactions.
Added a reproducible evaluation suite against ggplot2 and plotly, including machine-readable metrics and benchmark figure scripts under inst/benchmarks/.
Froze the XGeoRTR/ggWebGL renderer boundary in RENDERER_CONTRACT.md and added the first as_ggwebgl_spec.xgeo_state() adapter plus renderer contract tests.
ggWebGL 0.0.0.9000
Reset package metadata and top-level documentation from the copied scaffold to the ggWebGL package identity.
Rewrote the package README, citation, and pkgdown configuration around the intended ggplot2 plus WebGL rendering workflow and companion-package split.
Removed imported carryover benchmark content from the copied package tree.
Added the first real ggplot_webgl() renderer path for point and line layers, backed by a minimal WebGL htmlwidget.
Added the initial showcase vignette and gallery, including dense latent-space, diffusion-trajectory, phase-portrait, and optimization-path examples.
Added reusable standard and high_detail showcase presets for the gallery and demo surfaces.