# ANN: RayTraceEllipsoid.jl

**URL:** <https://discourse.julialang.org/t/ann-raytraceellipsoid-jl/5273>\
**Category:** Community\
**Tags:** package, announcement\
**Created:** [August 8, 2017, 7:48am UTC](https://discourse.julialang.org/t/ann-raytraceellipsoid-jl/5273 "2017-08-08T07:48:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [August 8, 2017, 7:48am UTC](https://discourse.julialang.org/t/ann-raytraceellipsoid-jl/5273/1 "2017-08-08T07:48:39Z")

</div>

Hi all!  
I’m happy to announce the [RayTraceEllipsoid.jl](https://github.com/JuliaGeometry/RayTraceEllipsoid.jl) package. It allows for geometric ray tracing. Currently, the only shape you can trace rays with is a dome shaped as an ellipsoid, so it’s a section of an ellipsoid. It includes intersection and refraction/reflection of rays. It accomplishes that in about 100 lines of code thanks to heavy use of `CoordinateTransformations.jl` and `StaticArrays.jl`.  
I think it’s pretty cool that I can get such fast ray tracing with so little code for any arbitrary 3D ellipsoids…  
PR etc are of course welcome!

---

<div class="post-metadata">

**Author:** ![jstrube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jstrube/32/525_2.png) [@jstrube](https://discourse.julialang.org/u/jstrube)\
**Post date:** [August 8, 2017, 6:45pm UTC](https://discourse.julialang.org/t/ann-raytraceellipsoid-jl/5273/2 "2017-08-08T18:45:16Z")

</div>

Sounds interesting. Have you seen [ConstructiveSolidGeometry.jl](https://github.com/jtramm/ConstructiveSolidGeometry.jl) ?  
That’s another package that does ray tracing. If you’re aware of this, could you explain what the difference is with your package?

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [August 8, 2017, 7:16pm UTC](https://discourse.julialang.org/t/ann-raytraceellipsoid-jl/5273/3 "2017-08-08T19:16:36Z")

</div>

Yea, I saw it. I think it’s really impressive. I wanted to use it for my own work but it didn’t have any ellipsoids which was the only shape I really needed. I then started off writing a small and simple ray tracer and then I quickly got drawn into more and more details, finally stumbling on the `CoordinateTransformations.jl` trick.  
It would be cool to compare speeds and performance between the two packages, but `ConstructiveSolidGeometry.jl` does a whole lot more (all the CSG thing!). Thinking about it now, it might be a cool idea ot re-fracture `ConstructiveSolidGeometry.jl`’s code into the CSG part and the ray tracing part. I’m curious if `CoordinateTransformations.jl` would work on CSG shapes…
