diff --git a/README.md b/README.md index afd32d1a..c5e4e86b 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,34 @@ # DataForge Visualisation Platform -This repository contains [DataForge](http://npm.mipt.ru/dataforge/) -(also [here](https://github.com/mipt-npm/dataforge-core)) components useful for visualization in -various scientific applications. The main application for now is 3D visualization for particle -physics experiments. Other applications including 2D plots are planned for future. +## Table of contents -The project is developed as a Kotlin multiplatform application, currently -targeting browser JavaScript and JVM. +* [Introduction](#introduction) +* [Features](#features) +* [Modules contained in this repository](#modules-contained-in-this-repository) + * [dataforge-vis-common](#dataforge-vis-common) + * [dataforge-vis-spatial](#dataforge-vis-spatial) + * [dataforge-vis-spatial-gdml](#dataforge-vis-spatial-gdml) + * [dataforge-vis-jsroot](#dataforge-vis-jsroot) +* [Demonstrations](#demo) + * [Spatial Showcase](#spatial-showcase) + * [Muon Monitor](#muon-monitor) + * [GDML](#gdml) -Main features: +## 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 being developed as a Kotlin multiplatform application, currently targeting browser +JavaScript and JVM. + +## 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 @@ -18,14 +37,24 @@ Main features: - Object tree with property editor - Settings export and import - Multiple platform support - -## Modules contained in this repository: +## 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 ### dataforge-vis-common -Common visualisation objects such as VisualObject and VisualGroup. +Contains a general hierarchy of classes and interfaces useful for visualization. +This module is not 3D-specific. Class diagram: @@ -33,7 +62,6 @@ Class diagram: This module also includes configuration editors for JS (in jsMain) and JVM (in jvmMain). -Note: this module is not 3D-specific. ### dataforge-vis-spatial @@ -55,22 +83,23 @@ Some JSROOT bindings. Note: Currently, this part is experimental and put here for completeness. This module may not build. -### demo +## Demonstrations -Several demonstrations of using the dataforge-vis framework: +The `demo` module contains several demonstrations of using the `dataforge-vis` framework: -##### spatial-showcase +### spatial-showcase -Contains a simple demonstration (grid with a few shapes that you can rotate, move camera, etc.). +Contains a simple demonstration with a grid including a few shapes that you can rotate, move camera, and so on. +Some shapes will also periodically change their color and visibility. -To see the demo: run `demo/spatial-showcase/distribution/installJsDist` Gradle task, then open +To see the demo: run `demo/spatial-showcase/Tasks/distribution/installJsDist` Gradle task, then open `build/distribuions/spatial-showcase-js-0.1.0-dev/index.html` file in your browser. -Other demos can be built similarly. +Example view: ![](doc/resources/spatial-showcase.png) -##### muon-monitor +### muon-monitor A full-stack application example, showing the [Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up. @@ -80,12 +109,19 @@ Includes server back-end generating events, as well as visualization front-end. To run full-stack app (both server and browser front-end), run `demo/muon-monitor/application/run` task. +Example view: + ![](doc/resources/muon-monitor.png) -##### gdml +### gdml -Visualization example for geometry defined as GDML file. Once you open Web application, -drag-and-drop GDML file to the window to see visualization. For example file, use -`demo\gdml\src\jsMain\resources\cubes.gdml`. +Visualization example for geometry defined as GDML file. -![](doc/resources/gdml-demo.png) \ No newline at end of file +To build the app, run `demo/gdml/Tasks/distribution/installJsDist` task, then open +`build/distribuions/gdml-js-0.1.0-dev/index.html` file in your browser, and +drag-and-drop GDML file to the window to see visualization. For an example file, use +`demo/gdml/src/jsMain/resources/cubes.gdml`. + +Example view: + +![](doc/resources/gdml-demo.png) diff --git a/doc/resources/class-diag-common.png b/doc/resources/class-diag-common.png index b7c6f568..4943c3f4 100644 Binary files a/doc/resources/class-diag-common.png and b/doc/resources/class-diag-common.png differ diff --git a/doc/resources/gdml-demo.png b/doc/resources/gdml-demo.png index 7c6b69ea..4498ddcd 100644 Binary files a/doc/resources/gdml-demo.png and b/doc/resources/gdml-demo.png differ diff --git a/doc/resources/muon-monitor.png b/doc/resources/muon-monitor.png index 7511b116..a5a4f154 100644 Binary files a/doc/resources/muon-monitor.png and b/doc/resources/muon-monitor.png differ diff --git a/doc/resources/spatial-showcase.png b/doc/resources/spatial-showcase.png index ad00f8cd..5df95df9 100644 Binary files a/doc/resources/spatial-showcase.png and b/doc/resources/spatial-showcase.png differ