Thanks to the Blender add-on handling both the EVERTims raytracing client and the Evertims Python module from the GUI, only developers should require hereafter information.
NAME | |
ims |
start EVERTims raytracing simulation |
OPTIONS | |
-s <port> |
the <port> for the reader to listen to the messages |
-p <pattern> |
the dummy terminal print writer |
-v <pattern/host:port> |
the <host> <port> to write in the “VirChor” protocol |
-a <pattern/host:port> |
the <host> <port> to write reflection data for auralization in the “Markus” protocol |
-m <materialfile> |
the name of the material file |
-d <mindepth> |
the minimum order of reflections |
-D <maxdepth> |
the maximum order of reflections |
-g |
use the internal graphics module for drawing the result. BROKEN AT THE MOMENT. DO NOT USE! |
-f <roomfile> |
read the room geometry from the <roomfile>. DOESN’T WORK AT THE MOMENT. |
In the above pattern is a regular expression and is matched against the name of the solution formed as “source_name-listener_name”. If the pattern is omitted everything matches. Such that command line:
would make the following:
/face id mat_id p0_x p0_y p0_z p1_x p1_y ... p3_y p3_z |
update face <id> vertices (quad) coordinates and material |
/facefinished |
indicate room geometry update is complete (triggers new beam tree calculation) |
/source id m00 m10 m20 m30 m01 ... m33 |
update source <id> position / rotation, with mij the coefficient of its 4x4 homogeneous matrix |
/listener id m00 m10 m20 m30 m01 ... m33 |
update listener <id> position / rotation, with mij the coefficient of its 4x4 homogeneous matrix |
/line_on id x0 y0 z0 x1 y1 z1 |
active ray of id <id> from (x0,y0,z0) to (x1,y1,z1) |
/line_off id |
ray <id> no longer active (/line_on is likely to reuse this id latter for a new ray) |
/source source_id x y z |
source <id> position |
/listener listener_id x y z |
listener <id> position |
/in path_id order r1_x r1_y r1_z rN_x rN_y rN_z dist abs_0 abs_1 ... abs_9 |
new path <path_id> corresponding to a reflection of order <order>. first reflection point at (r1_x, r1_y, r1_z), last at (rN_x, rN_y, rN_z) for DOA estimation. dist is the length of the whole reflection path. abs_M is the absorption coefficient for the octave band M. <path_id> is guaranteed to be the same for a reflection path while it is visible. |
/upd path_id order r1_x r1_y r1_z rN_x rN_y rN_z dist abs_0 abs_1 ... abs_9 |
updated path <path_id> |
/out path_id |
removed path <path_id> |
setDebugMode(bool) |
Enable / disable debug mode (print info in console) |
addRoom(obj) |
Add obj (type: KX_GameObject) as EVERTims room in local dictionary |
addSource(obj) |
Add obj (type: KX_GameObject) as EVERTims source in local dictionary |
addListener(obj) |
Add obj (type: KX_GameObject) as EVERTims listener in local dictionary |
initConnection_read(ip, port) |
Init EVERTims to Blender connection, used to receive raytracing information (ip type: String, port type: Int) |
initConnection_write(ip, port) |
Init Blender to EVERTims connection, used to send room, source, listener, etc. information (ip type: String, port type: Int) |
isReady() |
Check EVERTims minimum requirements to enable simulation start: at least 1 room, 1 listener, 1 source, and initConnection_write parameters must have been defined. |
updateClient(objType) |
Upload Room, Source, and Listener information to EVERTims client (objType type: String) |
setMovementUpdateThreshold(thresholdLoc, thresholdRot) |
Define a threshold value (loc and rot) to limit listener / source update to EVERTims client (thresholdLoc, thresholdRot type: Float) |
startClientSimulation() |
Start EVERTims simulation: sent '/facefinished' message to EVERTims client to start acoustic calculation, add local pre_draw method to BGE scene stack |
updateClient(objType) |
Upload Room, Source, and Listener information to EVERTims client (objType type: String) |
activateRayTracingFeedback(bool) |
Enable / disable visual feedback on EVERTims raytracing, will init read socket to receive raytracing messages if set to True |
Example python script (runs in BGE) that defines Blender KX_GameObjects 'Room', 'Source', and 'Listener' as EVERTims room, source and listener and starts EVERTims simulation:
Building...