A python implementation of shooting and bouncing rays (PO-SBR), accelerated using OptiX.
Place POsolver.py into the working folder, and use the functions.
Examples are given in Test_RCS for RCS, and Test_range for radar range profile.
-
build(filename)takes in the filename of the geometry. Supported file formats inherit from libigl:obj, off, stl, wrl, ply, mesh. Returns vertices and facesv,f -
simulate(alpha, phi, theta, freq, raysperlam, v, f). This simulates monostatic radar. (receive = transmit angle)alphais the angle the E vector makes with the theta vector. 0/180 degrees is V pol, 90/270 degrees is H pol.phiis the phi angle of observation/transmission.thetais the theta angle of observation/transmission.freqis the simulation frequency in Hzraysperlamis the number of rays per lambda. 3 would give 9 rays in an area of lambda^2, 4 would give 16, etc.v,fare the vertices and faces obtained throughbuild(filename). Passv,ffrombuildto these parameters insimulate.bouncesare the desired number of max bounces you would like the progam to acheive
Examples are provided in TestRCS.py, and TestRange.py.
numpy: https://numpy.org/
libigl: https://libigl.github.io/libigl-python-bindings/
rtxpy (MODIFIED VERSION):
Grab the modified rtxpy and follow instructions here: https://github.com/pingpongballz/rtxpy
Original: https://github.com/makepath/rtxpy
DO NOT USE THE ORIGINAL rtxpy. The original does NOT take into account of inward or outward mesh normals.
Simulation on RTX4070 SUPER, i7-14700k
Flat plate at boreside. x-axis: degree(angle). y-axis: RCS(dBm^2)
Flat plate dimensions: 1.5m *1.5m.
Angular step: 45 to 135 degrees, 0.1 degree step
Operating frequency: 3GHz
Time to complete: 4.14 seconds
Theoretical boresight maximum: 38.0dB. Simulated: 38.0dB

Dihedral at boreside. x-axis: degree(angle). y-axis: RCS(dBm^2)
Dihedral dimensions: 1.5m *1.5m plates at 90 degree angles to each other.
Angular step: 45 to 135 degrees degrees, 0.1 degree step
Operating frequency: 3GHz
Time to complete: 7.91 seconds
Theoretical boresight maximum: 41.0dB. Simulated: 41.1dB

Trihedral at boreside. x-axis: degree(angle). y-axis: RCS(dBm^2)
Trihedral dimensions: 1.5m interior length.
Angular step: 45 to 135 degrees degrees, 0.1 degree step
Operating frequency: 3GHz
Time to complete: 8.55 seconds
Theoretical boresight maximum: 33.3dB. Simulated: 33.2dB

[1] R. Bhalla and H. Ling, "Image domain ray tube integration formula for the shooting and bouncing ray technique," in Radio Science, vol. 30, no. 5, pp. 1435-1446, Sept.-Oct. 1995.
[2] S. W. Lee, H. Ling and R. Chou, "Ray-tube integration in shooting and bouncing ray method", Microwave and Optical Technology Letters, vol. 1, no. 8, pp. 286-289, October 1988.