Releases: threedworld-mit/tdw
Releases · threedworld-mit/tdw
v1.13.0
This is a major release. There may be changes to the API that break or alter how your code behaves. Please read the upgrade guide.
New Features
- Added a new VR rig: FOVE Leap Motion. This rig requires a FOVE headset and Leap Motion sensor.
Command API
New Commands
Command |
Description |
set_vsync_count |
Set the renderer's vsync count. |
send_fove |
Send FOVE headset data. |
add_ui_cutout |
Add a UI "cutout" image to the scene. This will draw a hole in a base UI element. |
set_ui_element_rotation |
Rotate a UI element to a new angle. |
allow_fove_headset_movement |
Handle whether to send the Fove Headset position or not. |
allow_fove_headset_rotation |
Handle whether to send the Fove Headset orientation or not. |
refresh_leap_motion_rig |
Refresh a Leap Motion rig in the scene. This must be sent whenever new objects are added to the scene after the rig was created. |
show_leap_motion_hands |
Visually show or hide Leap Motion hands. |
start_fove_calibration |
Start the FOVE headset's internal calibration. |
tilt_fove_rig_by |
Tilt (pitch) the Fove rig by an angle. |
scale_object_to |
Scale the object to the given value. This is only useful if you know the model scale beforehand, which is not always (1, 1, 1). This command is only useful when used with send_scales, because ObjectScales output data will return the actual scale of each object. |
send_avatar_ids |
Send the IDs of each avatar in the scene. |
send_fast_avatars |
Send the position and rotation of each avatar in the scene. This is slightly faster than SendAvatars, and FastAvatars compresses much better than Avatars. However, FastAvatars doesn't contain avatar IDs, which makes it harder to use. See: send_avatar_ids which serializes the avatar IDs in the same order as the data in FastAvatars. |
send_fast_image_sensors |
Send the and rotation of each avatar's camera in the scene. This is slightly faster than SendImageSensors, and FastImageSensors compresses much better than ImageSensors. However, FastImageSensors is missing a lot of information contained in ImageSensors, including avatar IDs, making it harder to use. See: send_avatar_ids which serializes the avatar IDs in the same order as the data in FastImageSensors. |
send_fast_transforms |
Send FastTransforms output data. This is slightly faster than SendTransforms, and FastTransforms compresses much better than Transforms. However, FastTransforms excludes some data (see output data documentation) and it is also harder to use. See: send_object_ids which serializes the object IDs in the same order as the data in FastTransforms. |
send_object_ids |
Send the IDs of all Rigidbody objects (models and composite sub-objects) in the scene. The object IDs are sorted. |
send_post_process |
Send post-processing values. |
send_scene |
Send streamed scene metadata. |
send_models |
Send name and URL of each model in the scene. |
send_scales |
Send Scales data of objects in the scene. The scales are the worldspace scales rather than a factor. Send scale_object_to, not scale_object |
Modified Commands
Command |
Modification |
create_vr_rig |
Added new rig: fove_leap_motion |
Output Data
New Output Data
Output Data |
Description |
Fove |
FOVE headset and eye tracking data. |
Models |
Model names and URLs per object. |
ObjectScales |
The spatial scale of each object in the scene. |
PostProcess |
Post-processing values. |
Scene |
The scene name and URL of the asset bundle. |
SystemInfo |
System and hardware information. |
AvatarIds |
The IDs of each avatar in the scene. |
FastAvatars |
Fast, fixed-length avatar transform data. Use this in conjunction with FastAvatarIds: the order of the IDs matches the order of this data. |
FastImageSensors |
Fast, fixed-length avatar image sensor transform data. Use this in conjunction with FastAvatarIds: the order of the IDs matches the order of this data. |
FastTransforms |
None |
ObjectIds |
The IDs of all Rigidbody objects (models and composite sub-objects) in the scene. |
Modified Output Data
Output Data |
Modification |
Mouse |
This is now fixed-length data, meaning that it compresses better and is slightly faster. |
Version |
This is now fixed-length data, meaning that it compresses better and is slightly faster. |
tdw
module
- Added:
FoveLeapMotion
add-on.
- Added data classes and enums used by
FoveLeapMotion
:
CalibrationMethod
CalibrationSphere
CalibrationState
EyeByEyeCalibration
EyeTorsionCalibration
EyeState
Eye
- Added:
Autohand
Abstract base class for all VR rigs that use Autohand.
- Added:
LeapMotion
Abstract base class for all VR rigs that use Leap Motion.
- Modified the
UI
add-on:
- The
image
parameter in add_image()
can now be a PIL image.
- Added:
add_cutout()
Add a UI image that cuts a transparent hole in another UI image.
- Added:
set_rotation(ui_id, angle)
Model Library
- Added to
models_core.json
: baseball,
Example Controllers
- Replaced
ui/mask.py
with ui/cutout.py
- Added:
vr/fove_eye_tracking.py
- Added:
vr/fove_minimal.py
Documentation
New Documentation
Document |
Modification |
lessons/vr/fove_leap_motion.md |
FOVE Leap Motion documentation. |
python/add_ons/autohand.md |
API documentation for Autohand . |
python/add_ons/fove_leap_motion.md |
API documentation for FoveLeapMotion . |
python/add_ons/leap_motion.md |
API documentation for LeapMotion . |
python/vr_data/fove/calibration_method.md
python/vr_data/fove/calibration_sphere.md
python/vr_data/fove/calibration_state.md
python/vr_data/fove/eye_by_eye_calibration.md
python/vr_data/fove/eye_torsion_calibration.md
python/vr_data/fove/eye_state.md
python/vr_data/fove/eye.md |
API documentation for data classes used by the FoveLeapMotion add-on. |
lessons/core_concepts/output_data.md |
Added a section for "fast" output data. |
Modified Documentation
Document |
Modification |
lessons/ui/ui.md |
Replaced the UI mask section with a UI cutout section. Moved transform-related sections into a single section. |
v1.12.27
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
set_ui_element_depth |
Set the depth of a UI element. |
tdw
module
- Added:
ui.set_depth(id, depth)
.
Model Library
- Added affordance points to: 4ft_wood_shelving, appliance-ge-profile-microwave3, arflex_strips_sofa, b03_grandpiano2014, b04_backpack, cabinet_24_door_drawer_wood_beach_honey, dining_room_table, dishwasher_4, emeco_navy_chair, hp_printer, kettle_2, sm_tv, b04_bike, huffy_nel_lusso_womens_cruiser_bike_2011vray
Documentation
Modified Documentation
Document |
Modification |
lessons/ui/ui.md |
Added a section describing how to set a UI element's depth. |
v1.12.26
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
Modified Commands
Command |
Description |
replicant_reach_for_position
replicant_reach_for_relative_position
wheelchair_replicant_reach_for_position |
Added parameter offhand_follows . |
tdw
module
- Fixed:
replicant.reach_for(target, offhand_follows=True, absolute=False)
doesn't move the offhand to the correct position. The code responsbile for calculating the offhand target has been moved from tdw
into the build.
- Likewise for
wheelchair_replicant.reach_for(target, offhand_follows=True, absolute=False)
v1.12.25
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
set_ui_element_position |
Set the position of a UI element. |
tdw
module
- Added:
ui.set_position(id, position)
.
Example Controllers
Documentation
Modified Documentation
Document |
Modification |
lessons/ui/ui.md |
Added a section describing how to create an image "mask". Added a section describing how to move an image. |
v1.12.24
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
Modified Commands
Command |
Modification |
teleport_object
teleport_object_by |
Added optional parameter use_centroid . |
v1.12.23
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
set_ui_color |
Set the color of a UI image or text. |
Output Data
Modified Output Data
Output Data |
Modification |
Occlusion |
Removed: get_sensor_name()
get_occluded() returns an integer between 0 and 255 instead of 0 and 1. The number now describes the fraction of the image's pixels are occupied by objects, as opposed to background meshes. Added: get_unoccluded() . An integer between 0 and 255 describing what fraction of the image's pixels are occupied by objects if background meshes aren't rendered. To get the value that get_occluded() would have returned in prior versions of TDW:
1 - (occ.get_unoccluded() - occ.get_occluded()) / 255 |
Build
- Fixed:
Occlusion
is highly inaccurate, especially in scenes other than the ProcGen Room.
- Fixed: The command
apply_force
doesn't work as expected in most scenes.
Documentation
Modified Documentation
Document |
Description |
lessons/visual_perception/occlusion.md |
Updated document to describe the new Occlusion data. |
api/output_data.md |
Improved the documentation for all positions and rotations. Improved the documentation of LocalTransforms.get_forward() |
v1.12.22
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Build
- Fixed:
set_wireframe_material
can't change the material's color.
v1.12.21
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
set_wireframe_material |
Set the visual material of an object or one of its sub-objects to wireframe. |
tdw
module
- Added:
TDWUtils.set_wireframe_material(substructure, object_id, color, thickness)
.
Example Controllers
- Added:
scene_setup_low_level/set_wireframe_material.py
v1.12.20
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
set_robot_color |
Set the visual color of a robot in the scene. |
v1.12.19
This is an incremental update to v1.12. If you are already using a v1.12 release, you can safely upgrade without having to change any of your code.
Build
- Fixed:
send_albedo_colors
doesn't work.
tdw
module
- Added:
type_aliases.PATH
, a type alias for Union[str, Path]
. Replaced Union[str, Path]
with PATH
through TDW's codebase.
- Added to
TDWUtils
: tuple_to_vector3(tup)
, tuple_to_vector4(tup)
and tuple_to_color(tup)