Ray tracing
- Splits path tracing and EM field computation through the addition of two methods to `Scene`: `trace_paths()` to trace the paths and `compute_fields()` to compute the corresponding EM fields
- `Scene.compute_fields()` can now be executed in graph mode
- Adds a feature to use a callable object to compute radio material properties from the intersection points between rays and the scene and the ids of the intersected objects
- Adds a feature to use a callable object to compute the scattering patterns
- Adds a feature to define custom colors for radio devices that are used for rendering and preview
- Enables the instantiation of radio materials without loading a scene (PR 216, contribution by fklement)
- Fixes a bug with diffraction that was creating `NaN`s in some scenarios (201)
- Fixes a bug that occurred when reversing link directions using `Paths.reverse_direction`
- ***(Breaking change)*** Delay normalization is now done across all receive and transmit antennas of each transmitter-receiver pair
- `RadioMaterial` properties are not defined anymore as `tf.Variable` but can now be set freely by the user to be either a `tf.Variable` or a `tf.Tensor`
- ***(Breaking change)*** Removes the flags `trainable_relative_permittivity`, `trainable_conductivity`, `trainable_scattering_coefficient`, and `trainable_xpd_coefficient` from `RadioMaterial`
- `Transmitter` and `Receiver` position and orientation are not defined anymore as `tf.Variable` but can be set freely by the user to be either a `tf.Variable` or a `tf.Tensor`
- ***(Breaking change)*** Removes the flags `trainable_position` and `trainable_orientation` from `Transmitter` and `Receiver`
- Fixes a bug with paths that were wrongly flagged as LoS in some multi-link scenarios
- Adds a flag to `Scene.compute_paths()` and `Scene.compute_fields()` to disable the addition of random phases to scattered paths
- Fixes the link to the `simple_reflector` Blender file in API documentation
- Speeds-up `Scene.preview()` by switching to `uint8`-typed textures for coverage maps
- Better document the difference between edges and wedges (PR 214, contribution by jeertmans)
- Fixes 231
- Fixes 222
- Fixes 217
FEC
- Fixes a bug in `make_systematic()` (PR 236, contribution by daniel-x)
- Fixes XLA issue in CN update of `LDPCBPDecoder` (255)
MISC
- Adds multi-gpu support via `tf.distribute` to `sim_ber()`
- Adds `target_ber`, `target_bler` and `callback` to `sim_ber()` (PR 257, contribution by nbecker)
- Update requirements: TensorFlow 2.10 – 2.13, Python 3.9 – 3.11 and Ubuntu 22.04 recommended