The Brunel Visualization project defines a highly succinct and novel language that defines interactive data visualizations based on tabular data. The language is well suited for both data scientists and more aggressive business users. The system interprets the language and produces visualizations using the user's choice of existing lower-level visualization technologies typically used by application engineers such as RAVE or D3 . It can operate stand-alone and integrated into iPython notebooks with further integrations as well as other low-level rendering support depending on the desires of the community.
For Jupyter notebook integrations, Brunel Visualization supplies a REST API interprets the Brunel Visualization language and generates the required Javascript to display the visualization in a web browser. Currently the app server must be Apache TomEE w/JAX-RS with the brunel .war file deployed. Instructions for setting this up are below. We are working on improving and generalizing this.
For direct Java integrations, see: D3Builder for creating D3 output, ControlWriter for adding interactive controls and WebDisplay as an example using these. BrunelService also contains a usage example.
corePrimary support for Brunel VisualizationdataThe Brunel Visualization data processing engineetcExamples and supporting utilitieslibDependent .jarsserviceA basic web service to provide Brunel Visualization outputpythonIntegration of Brunel Visualization for Jupyter (IPython)RIntegration of Brunel Visualization for Jupyter (R)
- Install Apache TomEE w/JAX-RS
- Install Gradle.
- Install Python 3 and also install
noseusingpip install nose(used for unit tests during build)
BRUNEL_SERVER=http://localhost:8080/brunel-service
TOMCAT_HOME=[root dir of TomEE]
gradle build
This will build all Java (including the '.war' file), run all tests, create Javadocs, collect all required Javascript and place all of this into /brunel/out
Note: gradle assemble can be used to produce only the Java .jar files and likely does not require TomEE or Python to be installed. The resulting .jars will appear in the /build folder for each Java project.
Gradle can be used to deploy Brunel to TomEE and start the web server:
gradle cargoRunLocal
To confirm it is working, navigate to:
http://localhost:8080/brunel-service/docs
- Explore the docs to learn more
- Run
VisualTestslocated in/etcto view a few Brunel syntax test examples - See the
/pythonand/Rfolders for instructions on how to use Brunel with Jupyter (IPython) - For Java integrations, explore the javadocs generated by the Gradle build in
/out
Brunel uses a mix of static, translated and generated Javascript.
- Non-translated JS/CSS for Brunel is in
/core. These are expected to be edited by developers. - The translated
BrunelData.jsis created during the build of thedataproject. Do not edit this file. VisualTests.java(in/etc) will copy the JS/CSS upon execution so they are in the expected locations- Builds for
/servicewill copy the JS/CSS in the correct locations for the .war file. Additionally, the taskcopyWebFilescopies the JS/CSS in the expected place for execution directly from the src. - Builds for
/python, will copy the JS/CSS into a folder that also contains JS that is specific for the Jupyter integration