Frequently Asked Questions

What does SCONE stand for?

SCONE is a tasty acronym for Simulated Controller OptimizatioN Environment.

How can I contribute to SCONE?

Thank you for considering! There are many ways in which you can contribute, please follow this link for details.

Do I need programming skills to use SCONE?

No, SCONE provides an integrated Graphical User Interface (GUI) that allows simultaneous development, optimization, and analysis of predictive simulations. Control strategies are defined through a user-friendly configuration script – check out the Tutorials and Examples to learn more!

What kind of hardware do I need to run SCONE?

It depends on how many optimizations you want to run simultaneously. SCONE allows you to run as many as you like, but at some point your optimizations will slow down. A single optimization will use as much as ~15 different parallel threads, so the more cores you have on your machine, the better SCONE will run.

Memory-wise, SCONE optimizations have relatively low demands. For example, the gait optimization from the tutorial requires +/- 50 MB per optimization, so it will take a while before you run out of memory. Storage-wise, it's highly recommended to always use a Solid State Drive (SSD).

Here is an overview of recommended specifications:

Machine specification Number of cores Memory Storage Typical use case
Minimum 2 (dual-core) 4 GB SSD Reasonable performance, one or two optimizations at a time
Good 4 (quad-core) 8 GB SSD Decent performance, up to three optimizations at a time
High-end 8 8+ GB SSD Good performance, up to six optimizations at a time
Super high-end 16 16+ GB SSD Great performance, up to twelve optimizations at a time
Epic 32+ 16+ GB SSD Awesome performance, lots of simulations at a time

Can SCONE be used for robotics research?

Absolutely; even though SCONE has a focus on neuromuscular control, it can just as easily be used to optimize torque-based controllers found in robotics. All that is required is a supported Model of your robot or device. SCONE especially shines when robotic assistive devices are simulated together with musculoskeletal models.

Does SCONE work with both 2D and 3D models?

SCONE can be used with any model – both 2D and 3D. However, since 3D models are considerably more difficult to control, it's usually best to start by using a 2D model and extend to 3D later.

Does SCONE only work with OpenSim as a simulator?

SCONE is simulator-agnostic, meaning it can be used with any musculoskeletal dynamics simulation software package, after implementing a set of interface classes in C++. By default, only support for OpenSim models and simulation is included in the software.

What kind of parameters can I optimize using SCONE?

SCONE allows you to simultaneously optimize both model and control parameters, according to any user-defined objective function.

What kind of optimization algorithm does SCONE use?

Out-of-the-box, SCONE Optimizers support different flavors of Covariance Matrix Adaptation [Hansen 2006].

Can the optimization of a scenario be resumed if aborted before convergence?

At the moment, optimizations cannot be resumed directly once aborted. However, it is possible to use the result of a previous optimization as input for a new optimization. For more information, see the reference manual on init_file or ParInitSettings.

Can I use scripting to create custom controllers or objectives?

Since version 1.1, SCONE provides support for scripting to define custom controllers or objective functions, through ScriptController and ScriptMeasure. SCONE scripts are based on the Lua programming language. See Tutorial 6 for example scripts.

Why use Lua for scripting and not Python?

Since version 2.1.0, SCONE includes a Python interface that can be used for machine learning applications.

During a SCONE optimization, multiple simulations are evaluated concurrently, using separate threads – each of which continually evokes custom scripts to update the controller output or the objective function. Python has extremely poor performance in this situation, as it only allows a single thread to access the Python interpreter at a time – even though the scripts are fully independent. Lua, on the other hand, is much more flexible and performant in this scenario.

Can I use SCONE for my own project? What license is it published under?

SCONE is licensed under the Apache License, Version 2.0. SCONE Studio is licensed under the GNU Public License 3.0. You are free to use SCONE for whatever you want, as long as you adhere these licenses. If your publication uses SCONE, please cite the following paper:

Geijtenbeek, T (2019). SCONE: Open Source Software for Predictive Simulation of Biological Motion. Journal of Open Source Software, 4(38), 1421, https://doi.org/10.21105/joss.01421