What’s New With Holodeck?

The AndroidAgent taking a nap in the Playroom environment

We’ve been busy since the initial release of Holodeck! Holodeck is more stable, customizable, and useful than ever. We’ve added new worlds, agents, tasks, sensors, and more to give researchers maximum flexibility when using holodeck for their research.

We have a public Discord server now!

Have a question? Join our Discord!

Just want to try it out?

pip install holodeck

Then install a package, and see Getting Started.

New Features Since Release

For a comprehensive list, see the changelog. Our documentation – holodeck.readthedocs.io – has been greatly expanded as well.

Scenarios

When holodeck was initially released, each world had a fixed task, set of agents and sensors. If you wanted to change anything, you would’ve needed to re-compile the project yourself. We wanted researchers to have the flexibility to tweak and customize our worlds however they needed, instead of being restricted to the tasks and worlds we gave them, so we introduced a dynamic spawning system we refer to as “scenarios”.

Scenarios are simply a little configuration dictionary that tells holodeck which agents, tasks, and sensors to place in a world and where to place them. You can easily create a scenario and use it with any world we ship (if you’ve ever played Halo’s Forge mode, they are essentially map variants).

Want a UavAgent with 4 RGBCameras facing in each direction? Just add them to the scenario config, instead of re-compiling the entire project. Want to use a TurtleAgent instead of a SphereAgent on MazeWorld? Just change one line of the configuration. Changing the resolution of cameras or tweaking tasks configurations are much possible and easier now with scenarios.

Dexterity Package

We added a whole new package of worlds and tasks designed around the AndroidAgent and the new HandAgent, with scenarios designed to have varying levels of difficulty as agents get more and more capable. See here for a full list of the new scenarios.

What’s new in 0.3.1?

This latest release is mostly focused on bug fixes and improvements, but we managed to fit in some exciting new features as well.

For a comprehensive list, see the changelog.

RangeFinderSensor

The green debug lines are only drawn when you explicitly enable them

The RangeFinderSensor is a sensors that shoots out a configurable number of rays in a circle and returns the distance to the first object they hit. The angle the rays leave at can be adjusted (the image shows two RangeFinderSensors, one with an angle of 0° and another angled up)

Prop Spawning

It can be useful to add obstacles or features to an environment, so we added the ability to spawn props, like cubes, cones, cylinders or spheres. There are a few texture options, and can optionally be affected by gravity.

You can also provide a tag for a prop and use it with a task, like the DistanceTask or AvoidTask. In the future you will be able to define props to spawn in the scenario file as well.

Improved Docker Support

We’ve revamped our Docker support based off of feedback we’ve received. You can now run our integration tests inside the container, and we’ve made it more useful to develop inside of as well. See Docker Installation.

What’s Next?

We’re always looking for feedback on holodeck – what we could do to make it more useful or usable. Join our Discord and ask away. Even if you don’t have any feedback, we’d love to hear from you if you’re using or interested in using holodeck.

Eye Candy