
Distracer.io – Browser distributed ray tracing - diffcunha
http://distracer.io/
======
vjeux
This is based on the Ray Tracer I worked on for a school project. Here's the
technical report if you are interested :)
[http://blog.vjeux.com/2012/javascript/javascript-ray-
tracer....](http://blog.vjeux.com/2012/javascript/javascript-ray-tracer.html)

------
computer
The underlying technology here is CrowdProcess
([https://crowdprocess.com/](https://crowdprocess.com/)). Their business model
is to use CPU time of visitors of websites to make money, by selling access to
that CPU power to people who want to run parallel jobs, like mine bitcoins.

I think they should consider the possibility of legal action against them,
considering what happened to the guys doing this with a bitcoin miner:
[http://www.techdirt.com/articles/20140205/17512926103/new-
je...](http://www.techdirt.com/articles/20140205/17512926103/new-jerseys-
attorney-general-freaks-out-about-proof-of-concept-bitcoin-mining-app-issues-
ridiculous-subpoena.shtml)

------
berkut
This works fine when you're doing stills with simple scenes. When you've got
GBs/TBs of external assets in the form of source geometry and texture data,
all nodes need access to the same source data.

Once you start doing Monte Carlo path tracing and need decent sampling, you've
also got to be careful that each node is generating the seeds for the random
number generator correctly, otherwise you get patterns in the noise when you
piece them back together.

For animated stuff, you're better off distributing the different frames across
the nodes instead of splitting up each frame.

------
pointernil
This is a huge waste of energy / calculation power, right?

I really, really understand the technical fancy behind this kind of parallel
computing projects BUT have to imagine the wast of energy this would cause if
really used for a real world calculation jobs compared with a dedicated server
farm...

Or did the energy / calc-power realities change significantly lately?

~~~
jasonzemos
What is the _energy / calc-power reality_?

Your own workstation and a dedicated server farm both waste power if they're
under-utilized. So for server farms, we've consolidated with "clouds."
Unfortunately your workstation still sits idle most of the time, so now this
is just a really large cloud to schedule that capacity as well.

~~~
dangrossman
The power draw of my laptop under load versus typing this comment is almost
2:1. Under-utilized computers are not a waste of power, they're saving power.
I'm especially not OK with unknowingly donating my battery capacity and
limited cell data so CrowdProcess can sell it to someone while I read an
article. This is just bad business for everyone involved (and the
environment).

~~~
jasonzemos
> Under-utilized computers are not a waste of power, they're saving power.

Does this mean we should fill homes and datacenters with a larger number of
machines operating at fractional capacity in an effort to be more efficient
than a smaller number fully utilized machines?

This citation, ceteris paribus, seems to disagree:
[http://stackoverflow.com/questions/6128960/what-is-the-
relat...](http://stackoverflow.com/questions/6128960/what-is-the-relation-
between-cpu-utilization-and-energy-consumption)

> I'm especially not OK with unknowingly donating my battery capacity and
> limited cell data so CrowdProcess can sell ...

That's fine, and I certainly agree, but it's _off-topic to my question and
this thread_. I don't appreciate being summarily down-voted because every
single comment is not in lock-step with berating the submitter on this point.
There's a thread mentioning this, and I'm sure we all upvoted it.

Thanks.

~~~
dangrossman
Say you have a computational task you want to run.

You can run that on a single server for 1 minute, and use 5 watt-hours of
power.

Or you can translate it to JavaScript and run it on 50 web browsers for a
minute each, and use at least 50 watt-hours of power. That's what this would
look like, since you lose so much to having to use JavaScript, not having a
dedicated server-class CPU devoted to your task, and to overhead of
transferring the data to/from the client. Heck, you'll waste a bunch of power
just sending the code and data to clients that leave the page before sending
back results, which means their slice of the work has to be run multiple times
on multiple computers.

Same end result, 10+ times more electricity used, through a combination of
having to do much more work, and doing it on much less efficient hardware.
Money down the drain, pollution in the air. In reality the math is even worse
than that for most tasks.

So, nobody's suggesting you fill homes with more PCs for some reason. The
suggestion is to leave the PCs we already own alone, drawing a fraction of
their maximum possible electric usage. If you're going to try to better
utilize existing capacity, do it by buying spot instances on AWS for pennies
per hour, because those machines will give you vastly more computation per
watt. It would also be more power-efficient to add a brand new dedicated
server to the data center for these tasks than to utilize visitor web
browsers.

------
leetrout
For me on a rMBP the distributed render was twice as slow...

[http://f.cl.ly/items/3t2m1Z241x3E0X2o181L/Screen%20Shot%2020...](http://f.cl.ly/items/3t2m1Z241x3E0X2o181L/Screen%20Shot%202014-04-30%20at%202.30.54%20PM.png)

~~~
Keyframe
Idea is, probably, that the more distributed nodes the more in parallel they
can do. Useful for lots of frames or large images. Neat idea to put it in a
browser, but main trouble with making a production rendering is in
implementation details and support for applications and shading networks.

------
jec3
If your internet connection is slow but your computer is modestly fast the
CrowdProcess approach is demolished.

Internet capped at 100KB/s:
[http://i.imgur.com/NhOiWCz.png](http://i.imgur.com/NhOiWCz.png)

------
camus2
Unfortunatly it killed my browser (Chrome latest) on my macbook, but nice
project!

------
tlarkworthy
25s on my machine vs 12s across 16 machines and a load of bandwidth flying
round the internet. Not ethically worth it.

~~~
jasonzemos
So a more than doubling of performance is unethical because the internet is
being used for its intended purpose? Can you elaborate on this criticism? I'm
assuming your threshold for "ethical" is perhaps 10x?

~~~
nacs
That's quite the condescending comment.

The 'ethical' part is likely referring to using visitors' browsers/CPUs to do
your compute work without getting consent.

Parent post also mentioned the bandwidth usage is high so you're not only
using the CPU but using up a visitor's bandwidth (many of whom have low
monthly limits).

