Skip to content

v1.9.5

Compare
Choose a tag to compare
@alters-mit alters-mit released this 16 Feb 17:50
· 2211 commits to master since this release
8401e24

This is an incremental update to v1.9. If you are already using a v1.9 release, you can safely upgrade without having to change any of your code.

New Features

  • Added support for the Oculus Quest 2 with Touch controllers.

Command API

New Commands

Command Description
send_static_composite_objects Send static data for every composite object in the scene.
send_dynamic_composite_objects Send dynamic data for every composite object in the scene.
rotate_vr_rig Rotate the VR rig by an angle.
set_vr_resolution_scale Controls the actual size of eye textures as a multiplier of the device's default resolution.
send_oculus_touch_buttons Send data for buttons pressed on Oculus Touch controllers.
send_static_oculus_touch Send static data for the Oculus Touch rig.

Modified Commands

Command Modification
create_vr_rig Added parameter rig_type: The type of VR rig to instantiate.
Added parameter sync_timestep_with_vr: Whether to sync Time.fixedDeltaTime with the VR device refresh rate. Doing this improves physics behavior in VR; this parameter should almost always be True.
set_graspable Renamed to set_vr_graspable
Added parameter joint_break_force: The joint break force for this graspable object. Lower values mean it's easier to break the joint.

Deprecated Commands

Command Reason
send_composite_objects Replaced with send_static_composite_objects and send_dynamic_composite_objects

Output Data

New Output Data

Output Data Description
CompositeObjectsStatic Static composite object data.
CompositeObjectsDynamic Dynamic composite object data.
OculusTouchButtons Which Oculus Touch controller buttons have been pressed.
StaticOculusTouch Static data for the Oculus Touch rig.

Modified Output Data

Output Data Modification
VRRig Added: get_held_left() Returns the IDs of the objects held by the left hand.
Added: get_held_right() Returns the IDs of the objects held by the right hand.

Deprecated Output Data

Output Data Reason
CompositeObjects Replaced with CompositeObjectsStatic and CompositeObjectsDynamic

tdw module

  • Added: OculusTouch an add-on for the Oculus Touch VR rig.
    • Added abstract base class VR
  • Added the following VR data classes:
    • OculusTouchButton Enum values for Oculus Touch buttons.
    • RigType Enum values for VR rigs.
  • Added: CompositeObjectManager an add-on for managing composite object data.
  • Added the following composite object data classes:
    • CompositeObjectStatic Static data for a composite object and its sub-objects.
      • LightStatic Static data for a light sub-object of a composite object.
      • MotorStatic Static data for a motor sub-object of a composite object.
      • SpringStatic Static data for a spring sub-object of a composite object.
      • HingeStatic Static data for a hinge sub-object of a composite object.
      • PrismaticJointStatic Static data for a prismatic joint sub-object of a composite object.
      • NonMachineStatic Static data for a non-machine sub-object of a composite object.
    • CompositeObjectDynamic Dynamic data for a composite object and its sub-objects.
      • LightDynamic Dynamic data for a light sub-object of a composite object.
      • HingeDynamic Dynamic data for a hinge, motor, or spring sub-object of a composite object.
  • PyImpact will create impact sounds for VR nodes (e.g. hands).
    • Added: VR_HUMAN_MATERIAL and VR_HUMAN_BOUNCINESS
  • Fixed: InteriorSceneLighting sets the random number generator incorrectly such that all other attempts to create a numpy RandomState fail.
  • Fixed: TDWUtils.set_default_libraries() raises an exception if model_library isn't set and one of the set paths is a string.

Build

  • Dropped support for Flex in VR (this never worked very well).

Example Controllers

  • Edited physx/composite_object.py to use the CompositeObjectManager
  • Removed physx/kinematic_composite_object.py
  • Added physx/composite_object_open.py
  • Added physx/composite_object_torque.py
  • Moved humans/keyboard_controls.py to keyboard/keyboard_controls.py
  • Moved humans/keyboard_minimal.py to keyboard/keyboard_minimal.py
  • Removed humans/vr_minimal.py
  • Removed humans/vr_observed_objects.py
  • Added vr/oculus_touch_button_listener.py
  • Added vr/oculus_touch_composite_object.py
  • Added vr/oculus_touch_image_capture.py
  • Added vr/oculus_touch_minimal.py
  • Added vr/oculus_touch_output_data.py
  • Added vr/oculus_touch_py_impact.py

Documentation

New Documentation

Document Description
python/add_ons/composite_object_manager.md API document for CompositeObjectManager
python/object_data/composite_object/composite_object_static.md
python/object_data/composite_object/composite_object_dynamic.md
python/object_data/composite_object/sub_object/sub_object_static.md
python/object_data/composite_object/sub_object/light_static.md
python/object_data/composite_object/sub_object/hinge_static_base.md
python/object_data/composite_object/sub_object/motor_static.md
python/object_data/composite_object/sub_object/spring_static.md
python/object_data/composite_object/sub_object/hinge_static.md
python/object_data/composite_object/sub_object/prismatic_joint_static.md
python/object_data/composite_object/sub_object/non_machine_static.md
python/object_data/composite_object/sub_object/sub_object_dynamic.md
python/object_data/composite_object/sub_object/light_dynamic.md
python/object_data/composite_object/sub_object/hinge_dynamic.md
API documents for composite object data classes.
lessons/vr/overview.md Overview of VR.
lessons/vr/oculus_touch.md Tutorial on the Oculus Touch rig and OculusTouch add-on.
python/add_ons/oculus_touch.md API document for OculusTouch add-on.
python/add_ons/vr.md API document for VR abstract class.
python/vr_data/oculus_touch_button
python/vr_data/rig_type.md
API documents for VR data classes.

Modified Documentation

Document Modification
lessons/physx/composite_objects.md Rewrote most of the document to explain how to use the CompositeObjectManager.
Added a section explaining how to determine if an object is "open".
Clarified the difference between sub-meshes and sub-objects.
Added more example code.
lessons/agents/overview.md Split "Humans" section into "Keyboard controls" and "VR".
lessons/humans/keyboard.md Moved to: lessons/keyboard/keyboard.md

Removed Documentation

Document Reason
lessons/humans/vr.md Replaced with new VR documentation (see above).