1.1. Core Classes

class raysect.core.ray.Ray

Describes a line in space with an origin and direction.

  • origin (Point3D) – Point defining ray’s origin (default is Point3D(0, 0, 0)).
  • direction (Vector3D) – Vector defining ray’s direction (default is Vector3D(0, 0, 1)).
  • max_distance (double) – The terminating distance of the ray.

Copy this ray to a new Ray instance.

  • origin (Point3D) – Point defining origin (default is Point3D(0, 0, 0)).
  • direction (Vector3D) – Vector defining direction (default is Vector3D(0, 0, 1)).

A new Ray instance.

Return type:



Returns the point on the ray at the specified parametric distance from the ray origin.

Positive values correspond to points forward of the ray origin, along the ray direction.

Parameters:t (double) – The distance along the ray.
Returns:A point at distance t along the ray direction measured from its origin.
Return type:Point3D
class raysect.core.intersection.Intersection

Describes the result of a ray-primitive intersection.

The inside and outside points are launch points for rays emitted from the hit point on the surface. Rays cannot be launched from the hit point directly as they risk re-intersecting the same surface due to numerical accuracy. The inside and outside points are slightly displaced from the primitive surface at a sufficient distance to prevent re-intersection due to numerical accuracy issues. The inside_point is shifted backwards into the surface relative to the surface normal. The outside_point is equivalently shifted away from the surface in the direction of the surface normal.

  • ray (Ray) – The incident ray object (world space).
  • ray_distance (double) – The distance of the intersection along the ray path.
  • primitive (Primitive) – The intersected primitive object.
  • hit_point (Point3D) – The point of intersection between the ray and the primitive (primitive local space).
  • inside_point (Point3D) – The interior ray launch point (primitive local space).
  • outside_point (Point3D) – The exterior ray launch point (primitive local space).
  • normal (Normal3D) – The surface normal (primitive local space)
  • exiting (bool) – True if the ray is exiting the surface, False otherwise.
  • world_to_primitive (AffineMatrix3D) – A world to primitive local transform matrix.
  • primitive_to_world (AffineMatrix3D) – A primitive local to world transform matrix.
class raysect.core.material.Material

A base class for all Material classes.


Notifies any connected scene-graph root of a change to the material.

The notification informs the root node that any caching structures used to accelerate ray-tracing calculations are now potentially invalid and must be recalculated, taking the new material properties into account.