[![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) [![DOI](https://zenodo.org/badge/174502624.svg)](https://zenodo.org/badge/latestdoi/174502624) ![Gradle build](https://github.com/mipt-npm/visionforge/workflows/Gradle%20build/badge.svg) [![Slack](https://img.shields.io/badge/slack-channel-green?logo=slack)](https://kotlinlang.slack.com/archives/CEXV2QWNM) # DataForge Visualization Platform ## Table of Contents * [Introduction](#introduction) * [Requirements](#requirements) * [Features](#features) * [About DataForge](#about-dataforge) * [Modules contained in this repository](#modules-contained-in-this-repository) * [visionforge-core](#visionforge-core) * [visionforge-solid](#visionforge-solid) * [visionforge-gdml](#visionforge-gdml) * [visionforge-fx](#visionforge-fx) * [visionforge-markdown](#visionforge-markdown) * [visionforge-plotly](#visionforge-plotly) * [visionforge-server](#visionforge-server) * [visionforge-threejs](#visionforge-threejs) * [Visualization for External Systems](#visualization-for-external-systems) * [Demonstrations](#demonstrations) * [Simple Example - Solid Showcase](#simple-example---solid-showcase) * [Full-Stack Application Example - Muon Monitor](#full-stack-application-example---muon-monitor-visualization) * [GDML Example](#gdml-example) ## Introduction This repository contains a [DataForge](#about-dataforge)\-based framework used for visualization in various scientific applications. The main framework's use case for now is 3D visualization for particle physics experiments. Other applications including 2D plots are planned for the future. The project is developed as a [Kotlin multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html) application, currently targeting browser JavaScript and JVM. ## Requirements JVM backend requires JDK 11 or later ## Features The main framework's features for now include: - 3D visualization of complex experimental set-ups - Event display such as particle tracks, etc. - Scales up to few hundred thousands of elements - Camera move, rotate, zoom-in and zoom-out - Scene graph as an object tree with property editor - Settings export and import - Multiple platform support ## About DataForge DataForge is a software framework for automated scientific data processing. DataForge Visualization Platform uses some of the concepts and modules of DataForge, including: `Meta`, `Configuration`, `Context`, `Provider`, and some others. To learn more about DataForge, please consult the following URLs: * [Kotlin multiplatform implementation of DataForge](https://github.com/mipt-npm/dataforge-core) * [DataForge documentation](http://npm.mipt.ru/dataforge/) * [Original implementation of DataForge](https://bitbucket.org/Altavir/dataforge/src/default/) ## Modules contained in this repository ### visionforge-core > Core classes, algebra definitions, basic linear algebra > > **Maturity**: DEVELOPMENT > > **Features:** > - [vision](visionforge-core/src/commonMain/kotlin/space/kscience/visionforge/Vision.kt) : an architecture of visions.