Releases: threedworld-mit/tdw
Releases · threedworld-mit/tdw
v1.9.10
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.
Build
- Fixed: The OS X build doesn't use OpenGL rendering, causing _depth and _depth_simple passes to render as _img passes. (There were probably other OpenGL-related issues as well).
v1.9.9
This is an incremental update to v1. If you are already using a v1 release, you can safely upgrade without having to change any of your code.
Command API
Modified Commands
Command |
Modification |
create_flex_container |
Added optional parameter restitution . |
v1.9.8
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.
Command API
New Commands
Command |
Description |
scale_object_and_mass |
Scale the object by a factor from its current scale. Scale its mass proportionally. This command assumes that a canonical mass has already been set. |
Build
- Removed warning in
scale_object
about Flex objects because set_flex_scale
isn't a command.
tdw
module
Controller.get_add_physics_object()
will dynamically scale the "canonical" mass of the object if a value for the scale_factor
parameter is provided.
v1.9.7
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.
Command API
Modified Commands
Command |
Modification |
add_trigger_collider |
Added trigger collider shape "cylinder" |
Build
- Fixed: DllNotFoundException in TDW.app (OS X) due to missing AudioPluginOculusSpatializer.bundle
- Fixed: Potential memory leak with audio commands
tdw
module
- Fixed:
struct.error
in CompositeObjectManager
when deserializing static spring data.
- Added
TriggerCollisionManager
add-on. Manager per-frame trigger collision data.
- Added the following trigger collider/collision data classes:
TriggerColliderShape
Enum describing the shape of the collider.
TriggerCollisionEvent
Wrapper for trigger collision data.
- Added
ContainerManager
add-on. Manager per-frame containment data. This is a subclass of TriggerCollisionManager
.
- Added the following container trigger collider/collision data classes:
ContainerBoxTriggerCollider
Data for a box-shaped container trigger collider.
ContainerColliderTag
Enum of semantic tags for container trigger colliders.
ContainerCylinderTriggerCollider
Data for a cylinder-shaped container trigger collider.
ContainerNonUniformScaleTriggerCollider
Abstract class for container trigger colliders with non-uniform scales.
ContainerSphereTriggerCollider
Data for a sphere-shaped container trigger collider.
ContainerTriggerCollider
Abstract base class for container trigger collider data.
ContainmentEvent
Wrapper for containment trigger collision data.
Model Library
- Added cached trigger collision data to model records. Not all records have container trigger colliders; see
model_record.trigger_colliders
.
- (Backend) Added:
tdw.librarian._Encoder
JSONEncoder extension that is used within _Librarian
classes. For now, this just handles container collider data.
- Added models
models_core.json
and models_full.json
: cabinet_36_two_door_wood_oak_white_composite, cabinet_36_two_door_wood_beech_honey_composite, cabinet_24_wall_wood_beech_honey_composite, cabinet_24_wall_wood_oak_white_composite, cabinet_36_wall_wood_beech_honey_composite, cabinet_36_wall_wood_oak_white_composite, appliance-ge-profile-microwave3_composite, appliance-ge-profile-microwave_composite, microwave_composite
Example Controllers
- Moved composite object controllers from
physx/
to semantic_states/
- Moved overlap and raycast controllers from
objects_and_scenes/
to semantic_states/
- Added:
semantic_states/containment.py
- Added:
semantic_states/trigger_collisions.py
Documentation
New Documentation
Document |
Description |
lessons/semantic_states/containment.md |
Documentation for how to use the ContainerManager . |
lessons/semantic_state/grasped.md |
Overview of "grasped" semantic states with various agents. |
lessons/semantic_states/overview.md |
Overview of semantic states. |
lessons/semantic_states/trigger_collisions.md |
Documentation for how to use the TriggerCollisionManager . |
python/add_ons/container_manager.md |
API documentation for ContainerManager . |
python/add_ons/trigger_collision_manager.md |
API documentation for TriggerCollisionManager . |
python/collision_data/trigger_collider_shape.md
python/collision_data/trigger_collision_event.md |
API documentation for trigger collision data classes. |
python/container_data/container_box_trigger_collider.md
python/container_data/container_collider_tag.md
python/container_data/container_cylinder_trigger_collider.md
python/container_data/container_non_uniform_scale_trigger_collider.md
python/container_data/container_sphere_trigger_collider.md
python/container_data/container_trigger_collider.md
python/container_data/containment_event.md |
API documentation for containment data classes. |
Modified Documentation
Document |
Modification |
lessons/objects_and_scenes/raycast.md |
Moved to: lessons/semantic_states/raycast.md |
lessons/objects_and_scenes/overlap.md |
Moved to: lessons/semantic_states/overlap.md |
lessons/physx/composite_objects.md |
Moved to: lessons/semantic_states/composite_objects.md |
v1.9.6
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.
Command API
Modified Commands
Command |
Modification |
send_audio_sources |
Removed optional parameter ids because it was non-functional. |
Output Data
New Output Data
Output Data |
Description |
AudioSourceDone |
Output data that announces that an audio source is done playing. |
tdw
module
- Fixed: Error when initializing
PyImpact
if there isn't a VR rig in the scene.
- Fixed:
send_audio_sources
checks for object IDs instead of audio source IDs and therefore doesn't work.
- Fixed:
PyImpact
doesn't play valid impact audio events. Now, it uses AudioSourceDone
output data to check the time between impact events.
- Added optional parameter
min_time_between_audio_events
to the constructor.
- Fixed:
PyImpact
doesn't calculate size
values accurately. Added PyImpact.get_size(model)
.
Documentation
Modified Documentation
Document |
Modification |
lessons/audio/py_impact.md |
Added a section regarding min_time_between_impact_events |
lessons/audio/py_impact_advanced.md |
Added better guidance for how to set size values. |
v1.9.5
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). |
v1.9.4
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. For more information, please read the changelog.
v1.9.3
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. For more information, please read the changelog.
v1.9.2
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. For more information, please read the changelog.
v1.9.1
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. For more information, please read the changelog.