License: CC BY 4.0
arXiv:2402.13747v1 [eess.SP] 21 Feb 2024

A Ray Launching Approach for Computing Exact Paths with Point Clouds

Abstract

Ray tracing is a deterministic method that produces propagation paths between a transmitter and a receiver. The simulation accuracy is significantly influenced by the environment details. One way to capture the environment with great precision is the utilization of depth sensors and cameras. Such reconstructed environment is in the form of a point cloud. However, utilizing such data directly in ray tracing, a key aspect on vision-aided wireless communications, often involves a significant trade-off between accuracy and execution time. In this paper, we propose an open source novel and fast point cloud-based ray launching algorithm that produces exact paths, which provide a good basis for accurate modeling of radio channel characteristics. In experiments, preliminary validation of the ray tracer output is obtained with the aid of a commercial ray tracer.

Index Terms—  Deterministic radio channel characterization, ray tracing, graphics processing unit (GPU)

1 Introduction

The need for deterministic radio channel characterization methods such as ray tracing (RT) methods is increasing as new 6G research topics in communications are investigated. For example, development of integrated sensing and communications (ISAC) applications require physically accurate simulations that cannot be achieved with stochastic channel models [1]. Also exploitation of machine learning (ML) methods requires realistic simulations as it may be hard to get sufficient data from measurement campaigns.

One cornerstone for accurate RT simulations is having a model close to reality in terms of spatial details and material properties. This is envisioned to be achieved by the fusion of multi-modal data acquired from sensors, for example, cameras and depth sensors such as LIDARs, and RADARs [2] and is pivotal in achieving high precision in RT simulations. Multi-modal data is beneficial for material segmentation as well, which has been shown by the results in recent works [3, 4].

The constructed model acquired from sensor data is in the form of a point cloud. RT-based methods often utilize triangle-mesh based models due to the clearly defined surfaces and wide adaptation in the field of computer graphics. However, point clouds have also been utilized for radio channel characterization in varying settings [5, 6, 7], and their use in this context represents a significant step towards the integration of radio and vision data for enhanced environmental modeling.

Refer to caption
Fig. 1: Coarse paths with two or fewer reflections and the remaining exacts paths generated with our implementation.

RT-based algorithms can be categorized into image-based and ray launching (RL) algorithms [8]. The former method focuses on finding the exact paths for a transmitter/receiver (TX/RX) pair in a given environment, while in RL rays are cast from the TX with uniform spacing without considering the RX locations. RL has generally higher performance, but degraded accuracy due to discrete ray directions and approximated ray reception at RXs. Most RT solutions that directly utilize point clouds adopt the image method. Inspired by [9], an environment-driven RL-based solution was introduced in [10], which utilizes downsampled point clouds to compute coarse approximations of the propagation paths. As a pre-processing step, a matrix is filled that contains information about the visibilities between the points, TXs, and RXs in the environment. This matrix generation process becomes highly time consuming with a large number of points.

In this paper, we present an open source111https://github.com/nvaara/NimbusRT novel GPU-based RL solution that directly utilizes point clouds in the path determination process. While requiring minimal pre-processing measured in terms of execution time, it provides an approach that allows fast adaptability particularly in dense and dynamically changing environments. As illustrated in Fig. 1, our approach first produces coarse paths consisting of reflections and diffractions with a method, which utilizes multi-level voxel-based representation of the environment. As a post-processing step, we propose a dynamic solution to refine the coarse paths to exact paths.

2 Description of the Simulator

The simulator consists of three GPU-based components: (1) voxelization, (2) coarse path tracing, and (3) path refinement. It produces exact paths in labeled point cloud environments between a number of TXs and RXs. Labeled point cloud refers to a point cloud, where each point contains at least a position, normal vector, and a label. The labels are acquired by a segmentation process, where the resulting clusters represent distinct surfaces. It also supports diffraction, although the diffraction edges have to be inserted manually.

2.1 Voxelization

Point clouds lack the explicit surface representation of triangle mesh-based models, which is why we discretize the environment into three dimensional small uniform volumetric axis-aligned elements known as voxels. Such structure enables cheap spatial computations. The volume of each voxel represents a part of the original geometry, which allows us to examine a small area inside a scene. This is beneficial especially with point clouds, where the geometry may be represented with densely located points.

We utilize both low and high resolution voxels. The low resolution voxels are represented in the form of a grid, where traversal operations are performed. Having a low resolution greatly reduces the memory usage and allows covering a broader volume during traversal operations, which is beneficial as we utilize conical rays. On the other hand, high resolution allows us to have more detailed localization of intersections.

Each high resolution voxel, which we refer to as a subvoxel, is obtained by spatially dividing a low resolution voxel with a factor Dvsubscript𝐷𝑣D_{v}italic_D start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT. The subvoxels are only used for forming discretized parts of the geometry bound by its faces, and each of them may contain diffraction edge segments, points from the point cloud, and RXs. We call these alternatives as intersectable entities (IEs). On top of the geometry, each IE contains a label and a ray reception point. Each low resolution voxel is aware of its IEs, which means that they do not need to be stored in memory consuming data structures. A voxel grid and IEs are illustrated in Fig. 2.

Refer to caption
Fig. 2: A point cloud consisting of white points, purple low resolution voxel grid, and ray reception points of intersectable entities as orange and red points.

2.2 Coarse Path Tracing

The coarse path tracing outputs approximate propagation path trajectories. The path determination consists of two distinct phases, transmission and propagation, which are performed for each TX separately.

2.2.1 Intersections

Intersections with the point cloud have to be approximated, as they do not have a concise surface representation like triangles. We leverage the following procedure to determine intersections between a ray and a point set. The intersection point is determined with a signed distance function (SDF). We use the following implicit surface equation to estimate the distance to the surface [11]:

fsdf(𝐱)=(𝐱𝐩(𝐱))𝐧(𝐱),subscript𝑓𝑠𝑑𝑓𝐱𝐱𝐩𝐱𝐧𝐱f_{sdf}(\mathbf{x})=\left(\mathbf{x}-\mathbf{p}\left(\mathbf{x}\right)\right)% \cdot\mathbf{n}\left(\mathbf{x}\right),italic_f start_POSTSUBSCRIPT italic_s italic_d italic_f end_POSTSUBSCRIPT ( bold_x ) = ( bold_x - bold_p ( bold_x ) ) ⋅ bold_n ( bold_x ) , (1)

where 𝐱𝐱\mathbf{x}bold_x is a position being evaluated for intersection, 𝐩(𝐱)𝐩𝐱\mathbf{p}(\mathbf{x})bold_p ( bold_x ) and 𝐧(𝐱)𝐧𝐱\mathbf{n}(\mathbf{x})bold_n ( bold_x ) represent the weighted averages of the nearby point positions and normals, respectively. We compute a point on the ray by orthogonally projecting the center point of a bounding box enclosing the point set to the ray. This point acts as the center point for a line segment. The line segment length is the diameter of the subvoxel. Starting from the line segment end point 𝐬0subscript𝐬0\mathbf{s}_{0}bold_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT closest to the ray origin, we advance along the ray direction vector with the distance given by |fsdf(𝐬i)|subscript𝑓𝑠𝑑𝑓subscript𝐬𝑖\left|f_{sdf}\left(\mathbf{s}_{i}\right)\right|| italic_f start_POSTSUBSCRIPT italic_s italic_d italic_f end_POSTSUBSCRIPT ( bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) | until an intersection is found or the end of the line segment is reached. An intersection is found if sign(fsdf(𝐬i))sign(fsdf(𝐬i+1))signsubscript𝑓𝑠𝑑𝑓subscript𝐬𝑖signsubscript𝑓𝑠𝑑𝑓subscript𝐬𝑖1\text{sign}\left(f_{sdf}\left(\mathbf{s}_{i}\right)\right)\neq\text{sign}\left% (f_{sdf}\left(\mathbf{s}_{i+1}\right)\right)sign ( italic_f start_POSTSUBSCRIPT italic_s italic_d italic_f end_POSTSUBSCRIPT ( bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ) ≠ sign ( italic_f start_POSTSUBSCRIPT italic_s italic_d italic_f end_POSTSUBSCRIPT ( bold_s start_POSTSUBSCRIPT italic_i + 1 end_POSTSUBSCRIPT ) ) or if |fsdf(𝐬i)|subscript𝑓𝑠𝑑𝑓subscript𝐬𝑖\left|f_{sdf}\left(\mathbf{s}_{i}\right)\right|| italic_f start_POSTSUBSCRIPT italic_s italic_d italic_f end_POSTSUBSCRIPT ( bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) | is near zero.

2.2.2 Transmission Phase

The path tracing process starts with the transmission phase. We determine the initial interaction points from each TX with a similar method present in environment-driven approaches [9, 10], where rays are only launched towards discretized parts of the geometry. In our approach, a ray is cast towards each IE present in the scene, resulting in line of sight (LOS) connections to RXs and initial IE interactions that are visible from the TX.

2.2.3 Propagation Phase

After the transmission phase, new rays are launched from the initial IE interaction points. Depending on the interaction point type, the rays are either reflected or diffracted. The rays are traced until they do not intersect with any IEs or if maximum number of interactions is reached. As the rays formed in propagation phase are not cast towards IEs, the voxel grid presented in Section 2.1 is utilized for traversal. Together with conical rays (see Fig. 3), we refer this method of traversal as voxel cone tracing. Due to the conical rays, multiple similar paths are generated during the path tracing process. We define κ𝜅\kappaitalic_κ as the maximum number of paths that can contain the same labels in the same order.

2.2.4 Voxel Cone Tracing

In the traversal we use ray marching [12], which refers to advancing a varying distance during each iteration. The march distance from a given voxel is the longest distance along any axis to the closest voxel that contains IEs. Each voxel includes the information whether it contains IEs, as well as the march distance to the closest voxel containing IEs. If the voxel being evaluated contains IEs or if the march distance is equal to one, all of the neighboring voxels are evaluated for intersections.

We also utilize conical rays similarly to [10]. This is beneficial especially for diffractions, that are often simulated by casting rays in the form of a Keller’s cone [13]. The diffracted rays experience increasing spatial separation with the neighboring diffracted rays, which in traditional methods is often reduced by ray splitting [14] with additional computational cost. This can be avoided with conical rays as the rate of increase in the spatial separation between the neighboring diffracted rays can be expressed with an angle.

When a voxel is being evaluated for intersections, we form a bounding sphere around it for cone-sphere intersection. If the intersection exists, a similar intersection test is performed for each IE inside the voxel using a bounding sphere that encompasses IE’s subvoxel. For each valid cone-sphere intersection with an IE, the visibility is validated by tracing a ray from the ray origin to the IE reception point.

The cone apex angle is constant for all of the conical rays. In the case of diffractions, we mitigate the duplicate paths by introducing two separation planes. These planes, located in between the two neighboring diffracted rays, are used to compute the signed distance to the IE reception point, which we utilize to determine whether the IE reception point lies between the planes. In the case of reflected rays, a separation plane is placed at the origin of the ray. The components of the aforementioned rays are illustrated in Fig. 3.

Refer to caption
Fig. 3: Formation of intersection cone and separation plane normals for a reflected and a diffracted ray.

2.3 Path Refinement

The resulting paths produced by coarse path tracing are not accurate due to the discretized interaction points and conical rays. As a post-processing step, the image method is often applied to refine the coarse paths into exact paths, as in [15, 16]. However, refining diffraction interaction points is not directly possible with the image method and requires iterative methods.

We build our path refiner on top of our previous work [17], where the exact paths are computed for reflections and diffractions by minimizing the path length. The previous work assumes infinite boundless planes for reflection points, which we address in this work. The mathematical foundation is the same, which we describe briefly. The path length to be minimized can be described as

f=k=0N+1𝐈k𝐈k+1,𝑓superscriptsubscript𝑘0𝑁1normsubscript𝐈𝑘subscript𝐈𝑘1f=\sum_{k=0}^{N+1}||\mathbf{I}_{k}-\mathbf{I}_{k+1}||,italic_f = ∑ start_POSTSUBSCRIPT italic_k = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N + 1 end_POSTSUPERSCRIPT | | bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_I start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT | | , (2)

where 𝐈ksubscript𝐈𝑘\mathbf{I}_{k}bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the k𝑘kitalic_kth interaction point. 𝐈0subscript𝐈0\mathbf{I}_{0}bold_I start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝐈N+1subscript𝐈𝑁1\mathbf{I}_{N+1}bold_I start_POSTSUBSCRIPT italic_N + 1 end_POSTSUBSCRIPT are the TX and RX locations, respectively. The local path length of each interaction point is fk=𝐈k𝐈k1+𝐈k𝐈k+1.subscript𝑓𝑘normsubscript𝐈𝑘subscript𝐈𝑘1normsubscript𝐈𝑘subscript𝐈𝑘1.f_{k}=||\mathbf{I}_{k}-\mathbf{I}_{k-1}||+||\mathbf{I}_{k}-\mathbf{I}_{k+1}||% \text{.}italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = | | bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_I start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT | | + | | bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_I start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT | | . In the case of an k𝑘kitalic_kth intersection point being a reflection, the reflection point is 𝐈k=𝐑k=𝐜k+rk𝐮k+sk𝐯k,subscript𝐈𝑘subscript𝐑𝑘subscript𝐜𝑘subscript𝑟𝑘subscript𝐮𝑘subscript𝑠𝑘subscript𝐯𝑘\mathbf{I}_{k}=\mathbf{R}_{k}=\mathbf{c}_{k}+r_{k}\mathbf{u}_{k}+s_{k}\mathbf{% v}_{k},bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = bold_R start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , where 𝐜ksubscript𝐜𝑘\mathbf{c}_{k}bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the current interaction position, 𝐮ksubscript𝐮𝑘\mathbf{u}_{k}bold_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and 𝐯ksubscript𝐯𝑘\mathbf{v}_{k}bold_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT are the vectors that form an orthonormal basis with the surface normal vector at 𝐜ksubscript𝐜𝑘\mathbf{c}_{k}bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, and lastly, rksubscript𝑟𝑘r_{k}italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and sksubscript𝑠𝑘s_{k}italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT are the variables to solve. Similarly, the k𝑘kitalic_kth interaction in the case of a diffraction is 𝐈k=𝐃k=𝐜k+tk𝐰k,subscript𝐈𝑘subscript𝐃𝑘subscript𝐜𝑘subscript𝑡𝑘subscript𝐰𝑘\mathbf{I}_{k}=\mathbf{D}_{k}=\mathbf{c}_{k}+t_{k}\mathbf{w}_{k},bold_I start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = bold_D start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_w start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , where 𝐜ksubscript𝐜𝑘\mathbf{c}_{k}bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the current interaction position, wksubscript𝑤𝑘\vec{w}_{k}over→ start_ARG italic_w end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the direction along the edge, and tksubscript𝑡𝑘t_{k}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is the variable to solve.

During each iteration, we compute the partial derivatives fk/rksubscript𝑓𝑘subscript𝑟𝑘\partial f_{k}/\partial r_{k}∂ italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT / ∂ italic_r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and fk/sksubscript𝑓𝑘subscript𝑠𝑘\partial f_{k}/\partial s_{k}∂ italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT / ∂ italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT for each reflection point, and fk/tksubscript𝑓𝑘subscript𝑡𝑘\partial f_{k}/\partial t_{k}∂ italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT / ∂ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT for each diffraction point. The interaction points are then updated using gradient descent. The reflection points require additional processing, as they are acquired from the point cloud, which we do not impose any restrictions to in terms of the geometry. Thus, we trace a ray in the direction of the updated point to determine the new 𝐜ksubscript𝐜𝑘\mathbf{c}_{k}bold_c start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, 𝐮ksubscript𝐮𝑘\mathbf{u}_{k}bold_u start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and 𝐯ksubscript𝐯𝑘\mathbf{v}_{k}bold_v start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. This process is performed for ρ𝜌\rhoitalic_ρ iterations, or until a ray misses. If ρ𝜌\rhoitalic_ρ iterations are reached, the path is considered valid if the norm of gradient vector is less than the convergence threshold δ𝛿\deltaitalic_δ. Lastly, we validate the visibility between each node on the path trajectory by RT.

Label-based duplicate path removal is applied to refined paths as well, however, we only keep the shortest path with a certain label and interaction combination. An additional post-processing step is beneficial, as all of the duplicate paths may not be recognized due to reflections near edges that result in different labels. First, we sort the remaining paths based on the time delay of the path. Similarly to [6, 10], we compute the first Fresnel zones to validate the uniqueness of each path. Among the paths that contain the same chain of interactions and where the interaction points lie within the Fresnel zones, the shortest path is kept. Recall Fig. 1 for an example of the coarse paths and remaining exact paths.

3 Experiments

In the experiments, we evaluate the performance of our simulator, validating the generated paths by comparing our results with baseline paths acquired with a commercial ray tracer.

3.1 Overview

The experiments are performed with a synthetic point cloud generated from a triangle mesh version of a corridor model, a typical indoor environment. The resulting point cloud contains 2745513 points. Both models are presented in Fig. 4. The labels for the point cloud were generated with a plane fitting algorithm available in PCL [18]. As the baseline, we utilize Wireless Insite [19], which is a commercial RT tool that utilizes triangle-mesh based models and has been validated by measurements, for example, in [20, 21]. Paths for comparison were generated with its X3D RT model.

Refer to caption
Fig. 4: Triangle mesh and point cloud version of the corridor environment. One wall missing for visualization purposes.

3.2 Simulations

The desktop computer used in the simulations contains the following components: AMD Ryzen 9 5900X CPU, NVIDIA GeForce RTX 3080 GPU, and 32GB of RAM. Two non-LOS simulations were performed with one TX and one RX. The used simulation parameters, reflecting typical conditions in ISAC scenarios, are presented in Table 1. The antennas are isotropic and their locations can be seen in Fig. 4. Simulation A was performed without diffractions and simulation B was conducted with a diffraction limit of one. In the case of diffractions, we only consider exterior edge diffractions. The baseline paths were generated with the triangle mesh version. Path matching between the baseline and our simulator was performed by comparing the number of interactions and their types, and ray trajectories. If the difference in the ray trajectories of the paths being compared was less than one degree and the number of interactions and types were identical, the path was considered to be a match. The results with execution times can be found in Table 2.

Table 1: Simulation parameters.
Carrier Frequency (GHz) 60
Voxel Size (m33{}^{3}start_FLOATSUPERSCRIPT 3 end_FLOATSUPERSCRIPT) 0.5
Voxel Division Factor Dvsubscript𝐷𝑣D_{v}italic_D start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT 2
Coarse Path Duplicate Limit κ𝜅\kappaitalic_κ 100
Maximum Number of Interactions 5
Convergence Threshold δ𝛿\deltaitalic_δ 0.0001
Refinement Iterations ρ𝜌\rhoitalic_ρ 2000
Table 2: Simulation results. Simulations A and B were conducted with a diffraction limit of zero and one, respectively.
Simulation A B
Coarse Path Tracing (s) 7.65 150.02
Path Refinement (s) 2.80 26.35
Coarse Paths 105730 755136
Exact Paths 90 1480
Baseline Paths 83 654
% of Baseline Paths Found 100 85.8

3.3 Discussion

The experiments show that the simulator can produce similar paths as the baseline. Some of the paths found by our simulator that contain a reflection may not be accurate representations of the exact path due the interaction point being located near an edge, which causes distortion in the approximated normal vector.

In the case of the paths containing a diffraction, our simulator did not find all the baseline paths. One reason for this is that rays are only cast towards the IE reception points. This may lead to some paths being missed, especially if the following interaction point is near. An example of such is the box on the wall in Fig. 4. One way to mitigate this issue is to utilize a smaller voxel size or a larger voxel division factor Dvsubscript𝐷𝑣D_{v}italic_D start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT with the cost of increased computational complexity.

To make comparison with the reference method, these experiments considered perfect synthetic point clouds. However, the implementation can be used with raw point clouds acquired directly from the sensors, which will be one topic in future work. In addition, comparisons against channel measurements need to be conducted.

4 Conclusion

We presented an open source novel ray launching algorithm that utilizes point clouds in the path determination process. The method first generates coarse path approximations, which are then corrected to exact paths in the path refinement phase. The results of preliminary validation show substantial similarity with the baseline paths generated with a commercial ray tracer.

References

  • [1] Jakob Hoydis, Sebastian Cammerer, Fayçal Ait Aoudia, Avinash Vem, Nikolaus Binder, Guillermo Marcus, and Alexander Keller, “Sionna: An open-source library for next-generation physical layer research,” arXiv preprint arXiv:2203.11854, 2022.
  • [2] Ahmed Alkhateeb, Shuaifeng Jiang, and Gouranga Charan, “Real-time digital twins: Vision and research directions for 6g and beyond,” IEEE Communications Magazine, 2023.
  • [3] Yupeng Liang, Ryosuke Wakaki, Shohei Nobuhara, and Ko Nishino, “Multimodal material segmentation,” in Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2022, pp. 19800–19808.
  • [4] Md Kaykobad Reza, Ashley Prater-Bennette, and M Salman Asif, “Multimodal transformer for material segmentation,” arXiv preprint arXiv:2309.04001, 2023.
  • [5] Pasi Koivumäki, Aki Karttunen, and Katsuyuki Haneda, “Ray-optics simulations of outdoor-to-indoor multipath channels at 4 and 14 ghz,” IEEE Transactions on Antennas and Propagation, 2023.
  • [6] Jan Järveläinen, Katsuyuki Haneda, and Aki Karttunen, “Indoor propagation channel simulations at 60 GHz using point cloud data,” IEEE Transactions on Antennas and Propagation, vol. 64, no. 10, pp. 4457–4467, 2016.
  • [7] Pasi Koivumäki, Gerhard Steinböck, and Katsuyuki Haneda, “Impacts of point cloud modeling on the accuracy of ray-based multipath propagation simulations,” IEEE Transactions on Antennas and Propagation, vol. 69, no. 8, pp. 4737–4747, 2021.
  • [8] Zhengqing Yun and Magdy F Iskander, “Ray tracing for radio propagation modeling: Principles and applications,” IEEE Access, vol. 3, pp. 1089–1100, 2015.
  • [9] Jonathan S Lu, Enrico M Vitucci, Vittorio Degli-Esposti, Franco Fuschini, Marina Barbiroli, Jerome A Blaha, and Henry L Bertoni, “A discrete environment-driven GPU-based ray launching algorithm,” IEEE Transactions on Antennas and Propagation, vol. 67, no. 2, pp. 1180–1192, 2018.
  • [10] Pasi Koivumäki and Katsuyuki Haneda, “Point cloud ray-launching simulations of indoor multipath channels at 60 GHz,” in 2022 IEEE 33rd Annual International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC). IEEE, 2022, pp. 01–07.
  • [11] Anders Adamson and Marc Alexa, “Approximating bounded, nonorientable surfaces from points,” in Proceedings Shape Modeling Applications, 2004. IEEE, 2004, pp. 243–252.
  • [12] Matt Pharr and Randima Fernando, GPU Gems 2: Programming techniques for high-performance graphics and general-purpose computation (gpu gems), Addison-Wesley Professional, 2005.
  • [13] Joseph B Keller, “Geometrical theory of diffraction,” Josa, vol. 52, no. 2, pp. 116–130, 1962.
  • [14] Steven Fortune, “Efficient algorithms for prediction of indoor radio propagation,” in IEEE Vehicular Technology Conference, 1998, vol. 1, pp. 572–576.
  • [15] Jakob Hoydis, Fayçal Aït Aoudia, Sebastian Cammerer, Merlin Nimier-David, Nikolaus Binder, Guillermo Marcus, and Alexander Keller, “Sionna RT: Differentiable ray tracing for radio propagation modeling,” arXiv preprint arXiv:2303.11103, 2023.
  • [16] Hyuck** Choi, Jaeky Oh, Jaehoon Chung, George C Alexandropoulos, and Junil Choi, “WiThRay: A versatile ray-tracing simulator for smart wireless environments,” IEEE Access, 2023.
  • [17] Niklas Vaara, Pekka Sangi, Juha Pyhtilä, Markku Juntti, and Janne Heikkilä, “A refined path generation pipeline for radio channel propagation modeling,” in 2023 17th European Conference on Antennas and Propagation (EuCAP). IEEE, 2023, pp. 1–5.
  • [18] Radu Bogdan Rusu and Steve Cousins, “3D is here: Point Cloud Library (PCL),” in 2011 IEEE international conference on robotics and automation. IEEE, 2011, pp. 1–4.
  • [19] “Wireless Insite,” https://www.remcom.com/wireless-insite-em-propagation-software, Accessed: 10.1.2024.
  • [20] Norisato Suga, Yoshihiro Maeda, and Koya Sato, “Indoor radio map construction via ray tracing with RGB-D sensor-based 3D reconstruction: Concept and experiments in WLAN systems,” IEEE Access, vol. 11, pp. 24863–24874, 2023.
  • [21] Petar Medeđović, Mladen Veletić, and Željko Blagojević, “Wireless Insite software verification via analysis and comparison of simulation and measurement results,” in 2012 Proceedings of the 35th International Convention MIPRO. IEEE, 2012, pp. 776–781.