Update READMEs

This commit is contained in:
Peter Klimai 2020-05-08 00:42:10 +03:00
parent 8c8f4adc2e
commit f8222adfe7
4 changed files with 45 additions and 12 deletions

View File

@ -12,9 +12,10 @@
* [dataforge-vis-spatial](#dataforge-vis-spatial) * [dataforge-vis-spatial](#dataforge-vis-spatial)
* [dataforge-vis-spatial-gdml](#dataforge-vis-spatial-gdml) * [dataforge-vis-spatial-gdml](#dataforge-vis-spatial-gdml)
* [dataforge-vis-jsroot](#dataforge-vis-jsroot) * [dataforge-vis-jsroot](#dataforge-vis-jsroot)
* [Visualization for External Systems](#visualization-for-external-systems)
* [Demonstrations](#demonstrations) * [Demonstrations](#demonstrations)
* [Simple Example - Spatial Showcase](#simple-example-spatial-showcase) * [Simple Example - Spatial Showcase](#simple-example---spatial-showcase)
* [Full-Stack Application Example - Muon Monitor](#full-stack-application-example-muon-monitor-visualization) * [Full-Stack Application Example - Muon Monitor](#full-stack-application-example---muon-monitor-visualization)
* [GDML Example](#gdml-example) * [GDML Example](#gdml-example)
@ -26,7 +27,7 @@ used for visualization in various scientific applications.
The main framework's use case for now is 3D visualization for particle physics experiments. 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. Other applications including 2D plots are planned for the future.
The project is being developed as a [Kotlin multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html) The project is developed as a [Kotlin multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html)
application, currently targeting browser JavaScript and JVM. application, currently targeting browser JavaScript and JVM.
@ -103,9 +104,19 @@ Some JSROOT bindings.
Note: Currently, this part is experimental and put here for completeness. This module may not build. Note: Currently, this part is experimental and put here for completeness. This module may not build.
## Visualization for External Systems
The `dataforge-vis` framework can be used to visualize geometry and events from external,
non-Kotlin based systems, such as ROOT. This will require a plugin to convert data model
of the external system to that of `dataforge-vis`. Performing such integration is a work
currently in progress.
## Demonstrations ## Demonstrations
The `demo` module contains several example projects (demonstrations) of using the `dataforge-vis` framework: The `demo` module contains several example projects (demonstrations) of using the `dataforge-vis` framework.
They are briefly described in this section, for more details please consult the corresponding per-project
README file.
### Simple Example - Spatial Showcase ### Simple Example - Spatial Showcase
@ -122,7 +133,7 @@ Some shapes will also periodically change their color and visibility.
### Full-Stack Application Example - Muon Monitor Visualization ### Full-Stack Application Example - Muon Monitor Visualization
A full-stack application example, showing the A full-stack application example, showing the
[Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up. [Muon Monitor](http://npm.mipt.ru/en/projects/physics#mounMonitor) experiment set-up.
[More details](demo/muon-monitor/README.md) [More details](demo/muon-monitor/README.md)

View File

@ -1,15 +1,31 @@
### Muon Monitor Visualization ### Muon Monitor Visualization
A full-stack application example, showing the This directory contains a full-stack application example built with `dataforge-vis`.
[Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up. It is visualizing the
[Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up,
including experiment's geometry and events (particle tracks).
Includes server back-end generating events, as well as visualization front-end. #### Reusing code and going Full-Stack with Kotlin Multiplatform
The application includes both server back-end generating events, as well as client
visualization front-end.
As is common for Kotlin multiplatform projects, the code base of this simple application
is put in the following main directories:
* `commonMain` - common code, used by both JS client and JVM server. For example, the `Monitor`
object describes general geometry definitions needed in all parts of the application.
* `jsMain` - JavaScript client code. It performs visualization and reads events from the server.
* `jvmMain` - JVM server code. It runs `ktor` HTTP server, responding with event data when
client requests them.
Note that in a more traditional approach when client and server are developed separately
and possibly using different languages, there would be no benefit of reusing common code.
##### Building project ##### Building project
To run full-stack Muon Monitor Visualization application (both server and browser front-end), run To run full-stack Muon Monitor Visualization application (both JVM server and Web browser front-end),
`demo/muon-monitor/application/run` task. run `demo/muon-monitor/application/run` task.
##### Example view: ##### Example view:

View File

@ -5,9 +5,15 @@ Some shapes will also periodically change their color and visibility.
##### Building project ##### Building project
To see the demo: run `demo/spatial-showcase/Tasks/distribution/jsBrowserDistribution` Gradle task, then open To see the JS demo: run `demo/spatial-showcase/Tasks/distribution/jsBrowserDistribution` Gradle task, then open
`build/distribuions/spatial-showcase-js-0.1.3-dev/index.html` file in your browser. `build/distribuions/spatial-showcase-js-0.1.3-dev/index.html` file in your browser.
##### Example view: To see Java FX demo, run `main()` from `FXDemoApp.kt`.
##### Example view for JS:
![](../../doc/resources/spatial-showcase.png) ![](../../doc/resources/spatial-showcase.png)
##### Example view for Java FX:
![](../../doc/resources/spatial-showcase-FX.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB