Radius: Native, Physically Based, and Performant Pathtracing [Open Source!]

Crossroads, 1024x521, 4096 samples, 7 bounces. All rendered natively.

About

Project status: Radius has been deprecated and will no longer be worked on. The project will remain available for archival/reference purposes.

What is Radius?

Deriving from the Latin word of “Ray”, Radius aims to be a performant path tracer using parallel luau and OSGL to leverage its speeds.

OSGL is an efficient EditableImage wrapper library, and Radius serves to be the flagship of OSGL by demonstrating its features.

It is mainly a tech demo and is not intended to have any real use case.

Why make Radius?

Radius was initially inspired by filiprodak’s raytracing test place, and it is the spiritual successor to my first Raytracing Engine place. The main catalyst for the project was Sebastian Lague’s video on the subject.

Who is making Radius?

As of now, I am responsible for developing the project. Luau and engine optimizations go to the main contributors of OSGL. Special thanks to the supporters of the project!


Updates

[0.1a]
● Release!

[0.1.1a]
● Refractions are less likely to fail

[0.1.2a]
● QOL improvements
● Tuned the NLM denoiser

[0.2.0]
Still indev; major rewrite. Want to test out the nightly early? Give us feedback on the OSGL discord server!


Renders!

Some of these renders are rendered in old, experimental, or modified versions of Radius.





Try it out!

Radius is open-sourced with a BSD 3-Clause license. Please read it thoroughly if you plan to use Radius.

Note: The source code for Radius versions prior to version 0.2 are not meant to be modular. We have made it open-source for the sake of importing your own models and materials. You can do that by enabling textures under ray.material, and change the raycastParameters under ray.construct.

98 Likes

Why is this so photo-realistic?

It’s so cool

5 Likes

Thanks!
It uses the same methods as a real raytracers! The same programs that render animated movies use this technique or something similar :+1:

5 Likes

Sure looks like Cycles. Keep up the great work! I am interested in updates.

2 Likes

This advanced parthtracer looks great! Nice job on it! How long did it take to create this in total? It’s cool!

1 Like

NO WAY this is supposed to be in #resources:community-resources BUT NO WAY OMG AWESOME GG GOOD WOW!

1 Like

Will this be free or paid? Does it work smoothly?

Appreciate the support!
I went ahead and changed it to #resources:community-resources :+1:

1 Like

A rough estimate would be around a month/3 weeks of cumulative work. I started the project a long time ago though.

There was a bunch of recycled material from things I have already done years prior, and many times where I had paused for a week and continued again. But most of my time went into optimizing.

1 Like

It will be completely open source! Meaning every line will be yours to use and edit.

At the moment it is still a private project because there are still many features pending to be implemented.

Wow amazing!! Ill use this for my anomaly game.

1 Like

That’s great to hear! But I will need to remind you that this is not intended for real-time applications (like games).

1 Like

Then why bother optimizing it? If it’s not meant to be used in projects then what is it for?

1 Like

Roblox is slow. Roblox is very slow. Walking around in 2 frames per second is unbearable. Not only are we optimizing it for the novelty of being the fastest, but we are perfectionists too.

As I said in the post, it is meant to provide a fast real-time preview of your scene, and it’s not meant to be played in games in real-time. I guess the only exception is when you’re aiming for a niche aesthetic not seen in any other game.

I will be posting how the pathtracer looks in real-time soon! I hope this clears most doubts.

2 Likes

Holy shit DAYUM! You cooked! None of my ray tracers are anything close to this man, dayum!

4 Likes

THIS IS WHAT I WANT TO SEE!! I was working on my own path tracer with a denoiser that can look alright at around 20 samples… THIS IS INSANE! I think this is a new thing. First it was Crazyblox making a realtime raytracer, now I am seeing stuff like THIS! Good job!

2 Likes

I found this and wanna share with you. This is made for heavy calculations like this.

3 Likes

ActorGroups look promising! I’ll probably not use it because I already have made my own parallel luau module using the structure of fragment shaders as inspiration. I think ActorGroups is slightly more performant though, so I plan to update my module to closer represent theirs (but crediting @athar_adv of course)

And as of now, I don’t want to delay the release anymore. Most of the todo list is already done, and it’s mostly UI that is a roadblock for me. Getting good environments is also a hassle. I’m also waiting on the OSGL v1.6b release because the pathtracer uses the nightly build.

1 Like

One thing I wanna know; which build gets the most FPS and when does it start to go lower than 10? And would be great if you could give link to an example place.

I’m planning to release it as a downloadable place. The first release won’t be downloadable though; I will only open-source it after it is more or less complete. Right now I’m trying to get a demo up and running quickly for you guys to test it out. After the demo phase is over, you would be able to get a copy yourself.

FPS rarely goes down to 10 or less. For extremely intensive renders where all the bad stars align (high render resolution/fidelity/settings) it might drop to 10 and less. I plan to implement two render modes: real-time and non real-time. That should void any stuttery experience.