--- title: Ray casts in Defold brief: Ray casts are used to read the physics world along a linear ray. This manual explains how this works. --- ## Ray casts Ray casts are used to read the physics world along a linear ray. To cast a ray into the physics world, you provide a start and end position as well as [a set of collision groups](/manuals/physics-groups) to test against. If the ray hits a physics object you will get information about the object it hit. Rays intersect with dynamic, kinematic and static objects. They do not interact with triggers. ```lua function update(self, dt) -- request ray cast local my_start = vmath.vector3(0, 0, 0) local my_end = vmath.vector3(100, 1000, 1000) local my_groups = { hash("my_group1"), hash("my_group2") } local result = physics.raycast(my_start, my_end, my_groups) if result then -- act on the hit (see 'ray_cast_response' message for all values) print(result.id) end end ``` ::: sidenote Ray casts will ignore collision objects that contain the starting point of the ray. This is a limitation in Box2D. :::