SSTK: SmartScenes ToolKit
The (S)STK provides:
- Web-based framework for viewing models and scenes.
- Various web-based annotation interfaces for annotating models and scenes
- Batch processing component for doing analysis on scenes and offscreen rendering (see ssc/README.md)
- Server-side rendering
The SSTK can be used on Linux, MacOS and Windows systems.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash source ~/.bashrc nvm install node
If you use zsh instead of bash, replace all instances of bash with zsh.
Confirm above works using
node -v at the terminal.
- Build and run server
cd stk ./build.sh cd server ./run.sh
There are some prerequisites for the build process in Ubuntu, they can be installed using
sudo apt-get install build-essential libxi-dev libglu1-mesa-dev libglew-dev libvips.
- Visit http://localhost:8010 in your browser (Chrome is recommended)!
- 3D Models
- ShapeNet is a large dataset of 3D models.
- Synthetic Scenes
- Stanford Scene Database consist of 150 synthetic scenes.
- SUNCG is a large indoor dataset with over 45K houses.
The STK has been developed to be able to easily view and annotate 3D assets.
Specifically, parts of ShapeNet, SUNCG, ScanNet, and Matterport3D were all developed using the STK.
model-viewer: Model viewing interface
model-categorizer.html: Model categorization interface
scene-viewer.html: Scene Viewer
Advanced Build Instructions
You will need to build the client side assets that the server will serve before connecting to any entry point with your browser. To do this run the following in the root repository directory:
npm installto get base dependencies
npm run buildto package the stk source files
NODE_ENV=dev npm run buildto build source maps and have webpack watch for changes.
NODE_ENV=prod npm run buildto optimize (including minify) the JS assets.
For convenience a
build.sh script is provided that will run the two steps above.
You will need to repeat the build step every time the client source files are changed or use
NODE_ENV=dev npm run build to watch and rebuild as you develop!
Running the server
Once you have built the client source files as described above, you need to start the server (see server/README.md for details, including how to deploy a new instance). Do the following from the root repository directory:
cd server npm install npm start
server/run.sh script is provided that will run the above steps together.
For routine local development, here are the usual steps:
- Start webpack build process in watch mode by calling
NODE_ENV=dev npm run buildin repository root. If new dependencies have been introduced, you may get an unresolved module error and will need to run
npm installfirst. You need to build the client code everytime there is a code change -- watch mode is a convenience for avoiding manual
npm run buildcalls all the time.
- In a separate terminal, start the server process by calling
- Go to a browser window and pull up
localhost:8010/index.htmlor any other entry point (such as
- If you just need a one-time build of the toolkit, copy out the
npm run build) to the
masterbranch contains latest mainstream (with potential bug fixes over latest release)
devbranch contains large (potentially breaking) changes
v0.5.xbranch (and similar future versioned branches) contain the latest release of that form Versioning workflow: develop on
masterfor small bug fixes or on
devfor large changes. When ready to release branch, make sure to update appropriate
v0.5.xor similar latest release branch, and also tag with exact version number (e.g.,
Building the documentation
cd clientfrom the repository root
npm run jsdoc
- Open the generated
jsdoc/index.htmlpage with a browser
Refer to CHANGELOG.md for a record of notable changes.