JSoC 2015: Interactive 3D Graphics in Browser via Compose3D and ThreeJS.jl
This article details the progress of a Julia Summer of Code (JSoC) 2015 project focused on enabling interactive 3D graphics within web browsers using the Julia programming language. The developer, guided by Shashi Gowda and Simon Danisch, extended the Compose package to create Compose3D, adding support for 3D contexts and geometries. A significant outcome of this work was the abstraction of WebGL rendering capabilities into a standalone package named ThreeJS.jl. Initially, the project faced limitations with direct JavaScript emission, particularly regarding interoperability with Escher and interactivity features. To resolve this, the developer implemented a Polymer wrapper around the three.js library, creating web components that facilitate better integration and performance through Patchwork's DOM diffing. While interactivity remains limited in IJulia notebooks due to technical hurdles with Polymer 1.0, the solution works effectively with Escher, allowing users to create dynamic, interactive 3D scenes controlled by UI elements like sliders. The project, sponsored by the Gordon and Betty Moore Foundation, highlights advancements in scientific computing visualization and web-based graphical interfaces for Julia developers.
Wire timeline
JSoC 2015: Interactive 3D Graphics in Browser via Compose3D and ThreeJS.jl
This article details the progress of a Julia Summer of Code (JSoC) 2015 project focused on enabling interactive 3D graphics within web browsers using the Julia programming language. The developer, guided by Shashi Gowda and Simon Danisch, extended the Compose package to create Compose3D, adding support for 3D contexts and geometries. A significant outcome of this work was the abstraction of WebGL rendering capabilities into a standalone package named ThreeJS.jl. Initially, the project faced limitations with direct JavaScript emission, particularly regarding interoperability with Escher and interactivity features. To resolve this, the developer implemented a Polymer wrapper around the three.js library, creating web components that facilitate better integration and performance through Patchwork's DOM diffing. While interactivity remains limited in IJulia notebooks due to technical hurdles with Polymer 1.0, the solution works effectively with Escher, allowing users to create dynamic, interactive 3D scenes controlled by UI elements like sliders. The project, sponsored by the Gordon and Betty Moore Foundation, highlights advancements in scientific computing visualization and web-based graphical interfaces for Julia developers.
JuliaLang - The Julia programming language