It's called OpenGL.
Using the BufferSwapNotifyEventHandler you can draw your own objects to screen.
I personally use the OpenTK library which is a dotnet wrapper for the opengl32.dll
You've got a lot of reading up to do though - it's a big topic!
you can achieve this also using Temporary bodies. basically a body created with IModeler.
ray tracing body creation is not terribly complex to do. they are just cylinders that originate at a start point, have a direction and a length.
adding them as a feature would definately require IMacroFeatures.
i have done this to determine deflection on a surface.
while opengl is much faster, it is not so easily selectable, if that matters to you.
perhaps use a ITriadManipulator to be the selectable item because events are fired when anything on the triad changes, moves, ect
on triad move you can generate the graphics with temporary bodies. i say temporary bodies because they are much simpler to use and can be created using parallelism. meaning you will need to write this in .net
they are also easy to color, however gradient colors not so much