-
Couldn't load subscription status.
- Fork 11
Developers Manual
- The suggested IDE for develop the VSM is IntelliJ Idea.
- IntelliJ comes bundled with JDK 11 (tested on v2020.2), which is required for working with VSM. To simply install the JDK, for example to develop with another editor, you can get it here.
- Clone the VSM repository using
git clone https://github.com/SceneMaker/VisualSceneMaker.git. - Open the project directory from IntelliJ .
The VSM uses gradle as its build tool. In the project root folder, you can find the build file build.gradle. IntelliJ detects this automatically and downloads all the needed dependencies at first build.
-
In IntelliJ you can launch VSM from the
Scenemaker3.main()method. You can navigate to the class (src/main/java/de/dfki/vsm/) and click the green arrow next to the method. The run configuration should look like this.
-
And an example from IntelliJ 2022.

-
In the VM options you might want to add a
-eain order to enable assertions check (Modify options -> Add VM options -> -ea)
-
If, while opening a project, you get a message related to
CUPS, caused byjava.lang.ClassNotFoundException: de.dfki.vsm.model.scenescript.CUP$ScriptParser$actions, it is because the parser generation has not been run yet. This is a flaw in the building/running procedure. See Issue 216.- As a workaround solution, run in order the following gradle tasks:
build cleanbuild classes
- As a workaround solution, run in order the following gradle tasks:
-
In case of a java.lang.UnsupportedClassVersionError upon importing the project the Gradle JVM needs to be set to Java 11 under Gradle settings: Menu
IntelliJ Idea -> Preferences... -> Build, Execution, Deployment --> Build Tools -> Gradle -> Gradle JVM.
To keep the console output clean VSM does not ouput all log messages by default. The log level can be increased for Debugging via the environment variable LOG_LEVEL. Available options are:
- OFF
- SEVERE
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST
- ALL
For instructions on how to write an extension, please see the dedicated manual: Writing an Extension
We also have a page dedicated on how to write an extension to read data from the Social Signal Interpretation (SSI, https://hcm-lab.de/projects/ssi/) tool from the University of Augsburg. See here: Writing an SSI plugin
- Update the version of the release in:
build.gradlesrc/main/resources/res/version.ini- Please, follow rules from Semantic Versioning and Managing releases in a repository.
- Navigate to the gradle tool window (tiny elefant icon). From the
VisualSceneMakergradle project, follow the hierarchy of Tasks and locateTasks -> build -> build. - Double click to start the building process.
- The VSM executable is located in the folder
build->libs
Basically there are 2 ways how to employ the VisualSceneMaker in an existing Java application.
The following code snipped can be used in Java applications to create the graphical user interface of the VisualSceneMaker. The needed parameter file should point to a VisualSceneMaker project directory.
// Get the singelton editor instance
final EditorInstance sEditor = EditorInstance.getInstance();
// Get an editor project from file
sEditor.openProject(file);
// Show the singelton editor instance
sEditor.setVisible(true);This code snippet can be used in order to execute an existing Sceneflow+Scene model (a project) without the graphical user interface. The needed parameter file should point to a VisualSceneMaker project directory.
// Get an editor project from file
final RunTimeProject data = new RunTimeProject(file);
// Get the singelton runtime instance
final RunTimeInstance sRunTime = RunTimeInstance.getInstance();
// Launch the runtime with the project
if (sRunTime.launch(data)) {
// Start the runtime with the project
if (sRunTime.start(data)) {
// Wait until user aborts execution
System.err.println("Press Key To Abort ...");
// TODO: Stop waiting if execution
// has been aborted in another way
try {
final int in = System.in.read();
if (in != -1) {
// Aborting the execution now
}
} catch (final IOException exc) {
// Do nothing
} finally {
// Abort the runtime with the project
sRunTime.abort(data);
// Unload the project from the runtime
sRunTime.unload(data);
}
}
}Compared to the editor mode, the project is registered by sRunTime.launch(data) in the VisualSceneMaker runtime for execution. The (obvious) next step is to execute the project by sRunTime.start(data). The projects ends if it gets aborted sRunTime.abort(data). There are methods to stop, pause and resume (see API). In order to cleanup the project is unregistered sRunTime.unload(data).
VSM internally contains a couple of parsers that are used to define the syntax for the scene scripts and for the mathematical expressions on the nodes. The parsers are generated by the Flex/JCup libraries.
The syntax/grammar of the scene flow is defined by:
core/src/main/java/de/dfki/vsm/model/scenescript/
lexxer.jflex
parser.jcup
Whenever one of those two files is updated, the lever and the parser must be rescanned and the parser files regenerated:
core/src/main/java/de/dfki/vsm/model/scenescript/
ScriptLexxer.java
ScriptFields.java
ScriptParser.java
File updateParsers.sh at top level invokes the required pair of command lines.
TODO
We maintain the documentation of Visual Scene Maker through Wiki pages of the main code repository (https://github.com/SceneMaker/VisualSceneMaker/wiki).
The documentation language is hence MarkDown: https://daringfireball.net/projects/markdown/syntax
The suggested way for adding significant contributions (text, images, and other binary stuff) to the documentation is by cloning the wiki on your local computer, editing everything locally, and the commit/push back to the repository.
git clone https://github.com/SceneMaker/VisualSceneMaker.wiki.git
cd VisualSceneMaker.wiki
...
# For example, to add local stuff
git pull
mkdir images # if needed
# ... edit your stuff, add images
git add images newpage.md
git commit -m 'added tons of docs'
git push
The suggested tool for editing MarkDown is Visual Studio Code (https://code.visualstudio.com/) plus the markdownlint extension (https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint).
-
First published SceneMaker concepts (2003)
- describes the separation of content and flow for interactive presentations with agents
- contains an overview of the general modeling concepts
-
SceneMaker Master's Thesis (2009)
- contains overview of the architecture and the motivation behind certain design choices
- since it is 11 years old at this point, the technical details have changed at various points, e.g. small changes in the SceneScript language

