I want to implement a custom raytracing algorithm in Blender using nodes or preferably via python scripting.

Can someone please point me to the right direction? A tutorial will be nice.

Edit: Mainly, I want to have a rendering pipeline like BlenSor but through without relying on the native backend code. OSL does not seem to be the solution for me because I want to simulate the real optics behind it.

  • $\begingroup$ Do you want to create you own renderer? $\endgroup$
    – cgslav
    Dec 10, 2017 at 7:35
  • $\begingroup$ Yes. Sorry for the broad question (my 1st time). I edited the question to be more specific. $\endgroup$
    – Mo Hossny
    Dec 10, 2017 at 7:45

1 Answer 1


A very broad question. I know there is functionality in OSL for this but OSL equals Cycles. So if it should be possible in OSL it is possible with nodes. OSL does not have that much of references. The people who explored this field are Blender Sushi and the blog Small Blenderthings.

You do not exactly state what you are after so I can not help you that much further.

  • $\begingroup$ Sorry for the broad question (my 1st time). I edited the question to be more specific. $\endgroup$
    – Mo Hossny
    Dec 10, 2017 at 7:46
  • 1
    $\begingroup$ Ok, looked into BlenSor (thanks btw). As it looks to me they just programmed everything using c++/python. That's is far from your question using nodes. OSL/Nodes is always making use of the architecture that is already there. Of course you can bend something to your will but you have to create your own code. Theoretically you can use a combo of C++ and Python nodes inside current Blender. But there are no easy tutorials on that one (not that I know of). So it mostly comes down in programming it yourself or asking people in your community who want the same thing. Sorry, will be though. $\endgroup$ Dec 10, 2017 at 8:07
  • $\begingroup$ Thanks. There are other solutions that work on generated depth images but they are far from the true simulation of how the optics work. I have modified a bit of BlenSor code to match my needs but I believe there is a better way using Blender's architecture. Thanks for your help. I will let you know if I find a solution. $\endgroup$
    – Mo Hossny
    Dec 10, 2017 at 10:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .