Releases: threedworld-mit/tdw
Releases · threedworld-mit/tdw
v1.11.12
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Build
- Fixed: NullReferenceException if
replicant.reset()
is called while the Replicant is holding an object.
v1.11.11
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.
tdw
module
- Fixed:
FloorplanFlood
doesn't add the given scene's list flood effect.
Build
- Fixed:
replicant_reach_for_object
and replicant_reach_for_position
ignore the max_distance
parameter.
v1.11.10
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
add_floorplan_flood_buoyancy |
Make an object capable of floating in a floorplan-flooded room. This is meant to be used only with the FloorplanFlood add-on. |
tdw
module
- Added:
FloorplanFlood
add-on. Initialize a scene populated by objects in pre-scripted layouts. Then, create a set of flood objects for each floor section in the floorplan.
Visual Effects Library
- Added
flood_effects.json
. This library is used by the FloorplanFlood
add-on.
Example Controllers
- Added:
non_physics/floorplan_flood_minimal.py
Documentation
New Documentation
Document |
Description |
python/add_ons/floorplan_flood.md |
API for FloorplanFlood . |
lessons/non_physics/floorplan_flood.md |
Lesson for FloorplanFlood . |
v1.11.9
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
send_euler_angles |
Send the rotations of each object in the scene expressed as Euler angles. This command is a backend tool and not meant for general usage. |
Output Data
New Output Data
Output Data |
Description |
EulerAngles |
The rotations of each object in the scene expressed as Euler angles. This output data is a backend tool and not meant for general usage. |
tdw
module
- Replaced all cabinets, dishwasher, and fridges in the
Floorplan
scenes with composite objects whenever possible.
- Backend: Updated
floorplan_layouts.json
to include the composite objects and to store object rotations as Euler angles.
v1.11.8
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Build
- Fixed: Visual effect audio doesn't work.
Visual Effects Library
v1.11.7
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
add_visual_effect |
Add a non-physical visual effect to the scene from an asset bundle. |
destroy_visual_effect |
Destroy a visual effect in the scene. |
scale_visual_effect |
Scale a visual effect by a factor. |
parent_visual_effect_to_object |
Parent a visual effect object to a standard TDW physically-embodied object. |
unparent_visual_effect |
Unparent a visual effect from a parent object. |
teleport_visual_effect |
Teleport a visual effect to a new position. |
rotate_visual_effect_by |
Rotate a visual effect by a given angle around a given axis. |
rotate_visual_effect_to |
Set the rotation of a non-physical visual effect. |
tdw
module
-
Added: controller.get_add_visual_effect(name, id, position, rotation, library)
A wrapper function for the add_visual_effect
command.
-
Added: VisualEffectLibrarian
and VisualEffectRecord
Visual Effects Library
- Added: fire, smoke, burned_wood_pile_1, burned_wood_pile_2, burned_wood_pile_3
Example Controllers
- Added:
non_physics/visual_effects.py
Documentation
New Documentation
Document |
Description |
python/librarian/visual_effect_librarian.md |
API for VisualEffectLibrarian |
lessons/non_physics/visual_effects.md |
Documentation for visual effects. |
v1.11.6
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
enable_nav_mesh_obstacle |
Enable or disable an object's NavMeshObstacle. |
set_rigidbody_constraints |
Set the constraints of an object's Rigidbody. |
replicant_rotate_head_by |
Rotate the Replicant's head by an angle in degrees around an axis. |
tdw
module
- Added a new
Replicant
action: rotate_head(angle, axis)
.
- Fixed: The Replicant often ends IK actions (
reach_for
, reset_arm
. look_at
, and reset_head
) too early if the framerate is faster than 60 FPS.
- Fixed:
replicant.move_by()
and replicant.move_to()
start without an initial object avoidance check.
- The Replicant's motion along the Y-axis is now frozen.
- When the Replicant grasps an object, it will temporarily remove its NavMeshObstacle component (if the component exists). When the Replicant drops the object, the NavMeshObstacle component is re-enabled.
- Added:
NavMesh
add-on. This add-on automates NavMesh initialization.
- Fixed:
make_nav_mesh_obstacle
calculates the carve shape's size using AABB bounds. Now, it uses rotated bounds.
- Fixed:
bake_nav_mesh
adds NavMeshObstacles to the shapes defining room bounds in streamed scenes. Now, these shapes are ignored.
- Fixed:
bake_nav_mesh
adds a NavMeshObstacle to the roof of a scene. Now, the roof is ignored.
Example Controllers
- Refactored
navigation/nav_mesh.py
to use the NavMesh
add-on.
Documentation
New Documentation
Document |
Description |
python/replicant/actions/rotate_head.md |
API for the RotateHead action. |
python/add_ons/nav_mesh.md |
API for the NavMesh add-on. |
Modified Documentation
Document |
Modification |
lessons/replicants/head_rotation.md |
Added a section for the rotate_head(angle, axis) action. |
lessons/navigation/nav_mesh.md |
Rewrote most of the document in order to explain the NavMesh add-on instead of the lower-level commands. |
v1.11.5
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
Modified Commands
Command |
Modification |
send_is_on_nav_mesh |
Added parameter id . The ID of this output data. This is useful if this command is sent more than once. |
Output Data
Modified Output Data
Output Data |
Modification |
IsOnMavMesh |
get_position() returns a numpy array (was a tuple). Added: get_id() Returns the ID of this output data. |
v1.11.4
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
send_occupancy_map |
Request an occupancy map, which will divide the environment into a grid with values indicating whether each cell is occupied or free. |
Output Data
New Output Data
Output Data |
Description |
OccupancyMap |
A grid of positions denoting whether a space is occupied, free, or out of bounds. |
tdw
module
- Updated the
OccupancyMap
add-on. Previously, it required two communicate() calls to initialize and used a combination of Raycast
and Overlap
output data to generate the occupancy map. Now, the add-on uses OccupancyMap
output data, which requires only one communicate() call and is overall faster.
- Changed the values of the occupancy map. Previously,
1
meant "occupied" or "in an isolated island", and -1
meant "out of bounds". Now, 1
means "occupied", 2
means "out of bounds", and 3
means "in an isolated island". As a result of this change, occupancy maps can be expressed as arrays of unsigned bytes, meaning that there is less output data to send and therefore that the output data is faster.
- Added
occupancy_map.positions
, a numpy array of worldspace positions per grid position. Removed OccupancyMap.get_occupancy_position()
.
- Removed
occupancy_map.scene_bounds
.
- Removed
cell_size
from the constructor and moved it to generate()
.
- Added parameters to
generate()
: raycast_y
and once
.
Documentation
Modified Documentation
Document |
Modification |
lessons/navigation/occupancy_map.md |
Updated to explain the new OccupancyMap API. |
v1.11.3
This is an incremental update to v1.11. If you are already using a v1.11 release, you can safely upgrade without having to change any of your code.
Command API
New Commands
Command |
Description |
send_framerate |
Send the build's framerate information. |
Modified Commands
Command |
Description |
replicant_drop_object
replicant_grasp_object
replicant_set_grasped_object_rotation
replicant_reset_arm
replicant_reach_for_object
replicant_reach_for_position
replicant_look_at_object
replicant_look_at_position
replicant_reset_head |
Added optional set_status parameter. These commands will sometimes set the action status of the Replicant in the Replicant output data. This is usually desirable. In some cases, namely when you're calling several of these commands in sequence, you might want to set set_status to False . |
Output Data
New Output Data
Output Data |
Description |
Framerate |
Framerate data. |
tdw
module
- Fixed: Various strange behaviors in Replicant that vary between machines. This was caused by some commands within previous actions setting the Replicant's status before the current action finished. Now, these commands will never set the Replicant's status; only commands actually driving the current action will set the status (see Command API modifications, above).
- Fixed: At speeds greater than 60 FPS, the Replicant will appear move its arms and head much slower than its animations. This is due to arm and head motion being driven by a separate system. Now, the
duration
parameter of these actions is scaled via optional parameters, resulting in much more even motions. The value of these parameters defaults to True; if False, duration
won't be scaled.
- Added optional parameter
scale_reset_arms_duration
to move_by()
and move_to()
.
- Added optional parameter
scale_duration
to reach_for()
, reset_arm()
, look_at()
, and reset_head()
.
Documentation
Modified Documentation
Document |
Modification |
lessons/replicants/arm_articulation.md |
Added a section regarding scale_duration . Removed the section regarding movement (see below). |
lessons/replicants/head_rotation.md |
Added a section regarding scale_duration . |
lessons/replicants/movement.md |
Added a section about resetting arms while moving. |