Object3D Ray Tracing And Directivity

Computes the acoustic coverage envelope of one or several loudspeaker arrays (line array, sub, point source) inside a venue mesh, by casting one ray per speaker and building a 3D wireframe + mesh enclosing the covered area.

The module reads the venue geometry from a chunk (vertices + indices), casts a ray from each speaker along its on-axis direction, intersects it with the venue triangles (Möller–Trumbore), and assembles a per-array envelope made of:

  • a top and bottom arc (sliced from the speaker coverage cone),
  • side surfaces linking the speaker apexes (the spine) to the arc corners,
  • a wireframe (lines) drawn over the envelope edges,
  • the rays themselves, useful for diagnostic display.

The envelope shape depends on the effective speaker type:

  • line array (0) — if any speaker in the array is flagged as a line array, the whole array is treated as one. The ray for each line-array speaker is shifted by -half_v_cov so the bottom edge of the cone is what's tested against the floor.
  • sub (1) — no envelope is produced (the module still outputs the rays).
  • point source (2) — one box per speaker, radius taken from the radius input.

Settings

chunk name

Name of the chunk holding the venue 3D model (vertices + indices). The chunk must contain the items vertices-001 and indexes-001, as produced by object3d-model.

speaker type

Per-speaker integer array. Values:

  • 0 — line array
  • 1 — sub
  • 2 — point source

number of arrays

Total number of arrays declared in the patch. Used to group speakers into independent envelopes. Defaults to 1.

number of speakers

Integer array giving how many speakers belong to each array. If the sum is smaller than the actual number of speakers received on speaker center positions, the module redistributes them evenly across the arrays.

speaker center positions

3D positions of every speaker, flat-packed as X, Y, Z, X, Y, Z, …. The number of speakers is derived from length div 3.

speaker rotation angles

Per-speaker splay, h_angle pairs, in degrees, flat-packed as splay₀, h₀, splay₁, h₁, ….

  • splay — vertical rotation (tilt). Sign is preserved.
  • h_angle — horizontal rotation (azimuth). Sign is internally inverted to match Usine's 3D viewport convention.

speaker directivity angles

Two values: h_cov, v_cov in degrees, the horizontal and vertical coverage of the speakers. Only the first pair is read. Defaults to 100° (h) and 25° (v). Non-positive values are replaced by the defaults.

radius

For point source arrays only — the radius of the coverage cone in scene units. Defaults to 0.2 (20 m at the 1:100 Usine scale).

calculate

Trigger button. Launches the calculation in a worker thread. While running, the processing LED is on. Pressing calculate again during a calculation is queued for the next idle moment.

rays to infinity

When ON, the rays are not intersected with the venue mesh: each ray is drawn at the fallback length (50 m at 1:100). Useful when no chunk is provided or when checking the raw aim of every speaker.

vertices

Flat array of envelope vertices, X, Y, Z, X, Y, Z, …. To be wired into object3d-primitive-triangles along with indices.

indices

Flat triangle index list (no separator). Same convention as object3d-mesh.

lines

Flat array of point pairs (P, Q) describing the wireframe edges:

  • apex-to-corner edges (top + bottom box),
  • top and bottom arc polylines,
  • vertical side edges (TL–BL and TR–BR),
  • the apex spine.

Each segment is two consecutive points. To be wired into object3d-primitive-lines.

rays

Flat array of point pairs describing the cast rays (one segment per speaker). Each segment is start, end. When rays to infinity is OFF and the ray hits the venue, end is the intersection point; otherwise it is the fallback point at 50 m along the ray direction.

processing

Activity LED. ON while a calculation is running on the background thread.

Common Settings

info

show manual

Opens the web browser to display information or help about the selected object, if it exists.

For more details about information/help creation, see create-help-file.

description

Description of the module for internal help purposes only. The description is not displayed in the interface.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Current private ID for this control used to identify the object.

preset ID

Current private preset ID for this control used for presets.

recreate ID

If you experience difficulties in Polyphonic mode, try to recreate new id(s) with this button.

repair ID s

Each Patch shared on the local network uses its own ID (identification number). If you experience issues of Patches that don't send information to the good target, this button will rebuild all these id's.

Object Remote Address

absolute

Absolute remote address. see objects-address.

local

Local to the current patch remote address. see objects-address.

user addr

User defined remote address. see objects-address.

See also

version 7.0.250121

Edit All Pages