The target of this project is to provide a preview for volume rendering in the browser.
In future it will be integrated in the current workflow of experiments and therefore in the reconstruction process

Felix Schultze 0a9d2f0a4f Merge branch 'master' into otherteststructure 9 vuotta sitten
automaticimport 1fb96b5456 Fixed problem with duplicating added volumes. Method automatic import views.clear delete not only AutomaticImport objects but volumes, too 9 vuotta sitten
imageprocessing 6a0efba1b5 Fixed some problems after pep8 apply 9 vuotta sitten
loadtests 6bb2ab9cbc changed teststructure 9 vuotta sitten
misc 6511f25cca Add diagrams to backend 9 vuotta sitten
static 2f9bbd523c Updated threeJsHelper 9 vuotta sitten
templates e966479e04 Z Stretching now in overview cube, reposition main cube 9 vuotta sitten
visualization 13ab19140d Add automatic import with trigger and clear 9 vuotta sitten
volumes 6bb2ab9cbc changed teststructure 9 vuotta sitten
.gitignore 5c4cdbe895 Add wildcards to .gitignore, Fix grunt file deploying after git move 9 vuotta sitten
Gruntfile.js 687333c6fc Improve uglify, add old style, that selected resolutions are colored black 9 vuotta sitten
README.md 6339f33bfa better mem during preprocessing and enhanced tesrresults 9 vuotta sitten
clouds.jpg fc9b044017 Initial commit with version 0.0.7 9 vuotta sitten
manage.py f0ef2517bd Apply pep8 to visualization 9 vuotta sitten
package.json bfca844f62 Add minify file, may have to uglify it now, improved touch, ask for biggest texture size 9 vuotta sitten
setup.cfg f08304ed72 Set line width to 160 9 vuotta sitten
startDev.sh 49838a8a27 Changed used python version to python2 9 vuotta sitten
startNewCronJobForAutomaticImportTrigger.sh bc5f205b36 Added script startNewCronJobForAutomaticImportTrigger.sh to add cron job 9 vuotta sitten

README.md

volume-visualization

The target of this project is to provide a preview for volume rendering in the browser. In future it will be integrated in the current workflow of experiments and therefore in the reconstruction process

installation

Please install requirements first.

Example for OpenSuse and with package manager 'zypper':

zypper-packages:

python >= 2.7 python-numpy python-numpy-devel mongodb memcached libmemcached-devel libtiff-devel libjpeg8-devel

pip-packages:

blinker >= 1.3.0 python-memcached Django >= 1.7.3 six scipy Pillow >= 2.6.0 scikit-image tifffile mongoengine mongodbforms (from git repo: pip intall git+http://git.ipe.kit.edu/schultze/django-mongodbforms.git)

Import the mongodbdatabase

In general, please refer to the mongodb homepage.

Untar the package 'misc/dump/volume_visualization.mongodb.tar.gz' Then run 'mongorestore --db volume_visualization dump/volume_visualization/' Note that, with this dump, it is not possible to use zooming. For zooming, the original datas are needed, and that are far too big to store it in the git repository.

Configure memcached

At some point we need to cache some generated images in the memcached cache. So we have to increase the number of allowed value size. In OpenSuse, open "/etc/sysconfig/memcached" and add "-I 15M" to the configuration. Start or restart the memcached service

Configure the application properly

Go to 'visualization/' Copy the 'settings_env.py.dev' file to 'settings_env.py'. Review the configuration options and put in yours.

Start running the server

Be sure, that your local mongodb server is running

Just do a 'python manage.py runserver' For more options, please refer to the original Django documentation

Developing JS

sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/nodejs/openSUSE_13.1/ Node.js sudo zypper in nodejs nodejs-devel npm

After that, please install 'grunt' via 'sudo npm install -g grunt-cli' You are ready to go developing JS for the application.

Just use Grunt, e.g. 'grunt watch' (in a separate terminal) All 3D relevant files will be packaged together to one JS file.

Deploying on servers

Currently there exist different servers and on that servers, different stages.

Available servers:

  • (1) ipepdvcompute3.ipe.kit.edu
  • (2) anka-visualize.anka.kit.edu

Both servers provide a staging and a prod environment

To deploy the application on a server, grunt can be used with its deploy target. As options --env and --server are mandatory Possible values for --env: 'staging', 'prod' Possible values for --server: 'compute3', 'anka' where 'compute3' refers to server (1) and 'anka' to server (2)

E.g. so if you want to deploy to ipepdvcompute3.ipe.kit.edu on prod env: grunt deploy --env=prod --server=compute3#

Please refer to Grundfile.js for more information