Provides a domain-agnostic visualization utility designed to bypass structural rendering limitations within multi-trace three-dimensional animations in 'Plotly' by implementing a decoupled rendering pipeline. Computational processing of time-dependent physical states (markers and nodes) is managed within the R environment, while a custom hardware-accelerated 'WebGL' injection handles the synchronous rendering of complex topological frameworks (lines and edges) directly within the 'UI' browser interface via 'htmlwidgets'. This dual-layer architecture ensures smooth execution of synchronized multi-component 3D animations without framework degradation or controller loss.
Hardware-Accelerated Multi-Trace 3D Animations via WebGL Injections ================================================================================
Synchronized 3D Vector and Marker Animations in 'Plotly' via 'WebGL'
sync3d is a lightweight, high-performance R package designed to bypass structural rendering limitations within multi-trace 3D animations in plotly.
By decoupling the data computing pipeline, it allows researchers and developers to simultaneously animate complex 3D topological frameworks (lines/edges) and dynamic physical states (markers/nodes) without 'UI' degradation or controller loss.
You can install the development version of sync3d from GitHub (once repository is live) with:
# install.packages("devtools")
devtools::install_github("KatharinaBrecht-Quantum/sync3d")
When attempting to animate two separate 3D traces (e.g., a static geometric wireframe model and a time-dependent quantum wave field changing colors) using the native R plotly structure, the engine loses synchronization across frames. This causes the animation to freeze, line paths to break, or 'UI' control elements (Play/Pause buttons) to completely malfunction.
sync3d resolves this constraint through a hardware-accelerated dual-layer execution pattern:
htmlwidgets::onRender directly into the browser. This handles the rendering of topological framework connections (lines/edges) directly on the GPU, synchronizing lines seamlessly with every animated state transition.sync3d is designed as a domain-agnostic visualization utility. By enabling high-performance, synchronous multi-trace 3D animations, it serves critical visual computing needs in fields such as:
library(plotly)
library(sync3d)
# 1. Define nodes/particles in 3D Space
nodes_df <- data.frame(
x = c(0, 1, 0, -1, 0, 0),
y = c(0, 0, 1, 0, 0, 0),
z = c(1, 0, 0, 0, -1, 0)
)
# 2. Define edge connections (Indices of points to connect)
edge_matrix <- matrix(c(1,2, 1,3, 1,4, 1,6), ncol = 2, byrow = TRUE)
# 3. Create your animated plotly base (Markers only)
base_plot <- plot_ly(data = nodes_df, x = ~x, y = ~y, z = ~z, type = 'scatter3d', mode = 'markers')
# 4. Apply sync3d extension to render hardware-accelerated synchronized lines
final_plot <- add_synchronized_3d_edges(base_plot, edge_matrix)
final_plot
sync3d was originally conceptualized during the development of octawave (Spatial Octahedral Quantum Wave Functions).
While octawave focuses on the mathematical simulation, spatial resonance fields, and structural 'MRI' slice generation of fullerene models, it encountered the native multi-trace 3D animation limits of R. sync3d was decoupled as an independent, generic extension to solve this specific technical bottleneck for the entire R community.
For advanced quantum wave field visualizations and octahedral topologies, see the companion package:
Notice: This repository is actively maintained and developed by the author as part of an ongoing academic research project into spatial quantum structures.
This package is licensed under the GPL-3 License.