#ray-casting #geometry #physics #raycast

phys-raycast

Ray casting functionality for 3D physics shapes

3 releases (1 stable)

2.0.1-beta.0 Oct 23, 2025
2.0.0 Oct 16, 2025

#192 in Simulation

33 downloads per month
Used in phys-collision

Custom license

60KB
1.5K SLoC

Phys Raycast Library

A lightweight ray casting library for 3D physics shapes built on top of the phys-geom library.

This library provides ray casting functionality for basic geometric shapes commonly used in physics simulations. It's designed to be minimal and focused, depending only on the core geometry library without requiring the full collision detection system.

Features

  • Basic Shapes: Ray casting support for sphere, cuboid, capsule, cylinder, triangle, and infinite plane
  • Minimal Dependencies: Only depends on phys-geom for geometry types
  • Simple API: Clean and intuitive ray casting interface
  • Type Safe: Leverages Rust's type system for safe geometric operations

Usage

use phys_raycast::{Raycast, RaycastHitResult};
use phys_geom::{Ray, shape::Sphere, math::{Point3, Vec3}};

let sphere = Sphere::new(1.0);
let ray = Ray::new(Point3::new(-2.0, 0.0, 0.0), Vec3::x_axis());

if let Some(hit) = sphere.raycast(ray, 10.0, false) {
    println!("Hit at distance: {}, normal: {:?}", hit.distance, hit.normal);
}

Dependencies

~3.5MB
~70K SLoC