Rod Furlan Life in Exponential Time Fri, 12 Dec 2014 06:55:06 +0000 en-US hourly 1 FastCompany Sat, 27 Sep 2014 22:26:05 +0000 Lucidscape brings on the Big Bang of the Next Internet

]]> 0
The Operating System of the Metaverse Wed, 24 Sep 2014 23:39:03 +0000 Lucidscape

At Lucidscape we are building a new kind of massively-distributed 3D simulation engine to power the vast network of interconnected virtual worlds known as the Metaverse.

Handling massive virtual worlds requires a fundamentally different approach to engine design, one that prioritizes the requirements of scale, thoroughly embraces distributed computing and many-core architectures, and that is also unencumbered by the legacy decisions which hold current engines back.

We have recently conducted our first large scale test where we simulated the interactions of 10 million participants on a cluster of over 800 servers.

You can read more about the test here.

]]> 0 Fri, 22 Aug 2014 21:42:31 +0000 We are building the future of Virtual Reality at Lucidscape

]]> 0
Make Magazine Mention: High-Tech DIY Thu, 10 Apr 2014 20:02:54 +0000 0 Through the Eyes of a Robot Mon, 28 Oct 2013 18:36:45 +0000 Last week I had the opportunity to attend RoboBusiness 2013 (most appropriately) by robot. I “beamed” into a Suitable Technologies Beam remote presence robot and I had a very positive experience interacting with everyone at the conference, human and machine alike.

Suitable Technologies did a great job with the Beam, the user interface is great and the robot handles very well. One-on-one conversations felt natural despite of the loud environment however multi-party conversations were challenging at times, but still workable.

Watching a demonstration

Watching a robot demonstration, through the eyes of another robot

Being pitched by an exhibitor

Being pitched by an exhibitor

]]> 0
IEEE Spectrum Article: Augmented Cognition with Google Glass Wed, 07 Aug 2013 17:53:38 +0000 0 Vice Interview: Do-It-Yourself Virtual Reality Tue, 09 Jul 2013 16:13:46 +0000 0 Huffington Post Mention: The Machines Are Getting Better But So Are You Wed, 02 Jan 2013 22:51:07 +0000 0 Lifehacker Mention: Build Your Own Google Glass-Style Wearable Computer Wed, 02 Jan 2013 06:43:07 +0000 0 The Verge Mention: One man’s journey through augmented reality with a self-built version of Project Glass Wed, 02 Jan 2013 06:42:12 +0000 0 MIT Technology Review Mention: The Latest on Google Glass Wed, 02 Jan 2013 06:40:39 +0000 0 Forbes Mention: Google Glass Project In Flux Wed, 02 Jan 2013 06:38:49 +0000 0 IEEE Spectrum Article: Build Your Own Google Glass Tue, 01 Jan 2013 03:55:50 +0000 0 IEEE Spectrum Interview: The Future of Wearable Computers Mon, 31 Dec 2012 16:00:39 +0000 0 Intermission Mon, 29 Oct 2012 17:43:38 +0000 Time for a break to explore Asia, back in 2013

]]> 0
DIY Oculus Rift – Because Reality is Overrated Tue, 04 Sep 2012 05:40:11 +0000 Yesterday Hack-a-Day featured one of my side-projects – a do-it-yourself immersive virtual reality head-mounted display based on the upcoming Oculus Rift.

UPDATE: You can find the first draft of the “official” building guide here.

]]> 0
Robot Whispering Fri, 03 Aug 2012 04:46:10 +0000 Last week I spent some quality time with the PR2 robot at Willow Garage. I enjoyed programming it to (poorly) fold towels. World domination is certain to follow.

]]> 0
IEET Interview: Will Artificial Intelligence be America’s Next Big Thing? Fri, 03 Feb 2012 21:09:41 +0000 0 National Geographic Interview: Human 2.0 Wed, 13 Apr 2011 01:32:35 +0000 National Geographic, Human 2.0

“Right now it’s easy to distinguish between a human being and a machine. However this line will become increasingly blurry in the future. [20 years from now] You will start by getting visual and auditory implants, then you are going to have your midlife crisis, and instead of going out and buying a sports car, you will instead buy a sports heart to boost your athletic performance.

The transition will happen little by little as you opt-in for more enhancements. Then one day you will wake up and realize that you’re more artificial than natural.

Eventually we will not be able to draw a crisp line between human beings and machines. We will reshape ourselves and by changing our bodies we will change the way we relate to the world.

This is just evolution – artificial evolution.

]]> 0
Changing the world, one grand challenge at the time Tue, 22 Jun 2010 19:12:52 +0000 /?p=1643 “If I was a student this is where I would want to be.” – Larry Page, Google co-founder regarding Singularity University

]]> 0
Singularity Hub Article: Igniting a Brain-Computer Interface Revolution Sat, 23 Jan 2010 03:42:17 +0000 /?p=1236 0 PopSci Mention: Greetings From Future Camp Thu, 17 Dec 2009 23:30:21 +0000 /2009/12/17/greetings-from-future-camp/ 0 In Defense of Efficient Computing Mon, 25 May 2009 20:57:49 +0000 /2009/05/25/in-defense-of-efficient-computing/ We all know that the cost of computing is on a definitive downtrend and while this is a great thing I worry that it is also steering developers to become less proficient in writing efficient (and reliable) code.

If most problems can be solved by throwing money and hardware at sub par wasteful code, what is the incentive to writing thoughtful, efficient programs?

The answer is RELIABILITY (and possibly to save your planet)

While the cost of computing is going down the adoption of dynamic languages is going up and that worries me. Perhaps I am just a backwards man who hasn’t seen the light yet but I urge you to bear with me as I present my argument against the use of dynamic languages in a production environment.

Why do I claim that dynamic languages are wasteful?

If you appreciate theater it is likely that you also appreciate that  the actors have to work hard at every performance. It is a beautiful thing, but it is also a lot of repetitive work and that is exactly the problem with dynamic languages in general.

How so? Every execution (performance) requires that a lot of work is done by the language runtime (showtime) environment. Most of the time this is repetitive work, mindlessly repeated every time you run your code.

Compare this with the stark contrast of cinema (compiled code) – there is no showtime hustle, the movie is already shot, cut, edited and packaged for delivery. No energy is wasted.

You might ask me how significant is this waste I am talking about and the truth is that most of the time it is negligible but like everything in life, the devil is in the details.

Hypothetically, let us say that at each execution a dynamic program wastes a mere 10,000 CPU cycles doing “preventable runtime busy-work”. That figure is utterly insignificant if you are looking at the trees only, but as you step back to look at the forest your perspective might change.

Imagine this same piece of code running on a few hundred-thousand computers around the world and being executed a few thousand times a day on each. Now multiply this by each program of each dynamic language in existence and you might conclude that dynamic languages are not very good for our planet because computing demands energy and energy demands natural resources.

So, if you believe in green computing through algorithmic efficiency you already have a good case against the use of dynamic languages.

“But dynamic languages are more productive so the energy wasted on one end is saved on another!”

Some might argue that dynamic languages are able to offset their “global footprint” by being more productive. Unfortunately, I beg to differ.

Unless you are simply writing throwaway (or generally short-lived) code, the odds are that whatever you are building will remain in play for years to come. This brings two new variables into the equation, one is maintenance costs and the other is failure costs. I am going to argue that compiled languages do a better job at minimizing those costs in the long run due to the increased reliability they offer.

First, we need to define what “productive” means in a quantifiable way because there is no room for fuzzy subjective opinions in computer science.

I believe that the Total Cost of Ownership (TCO) of a software solution is the ideal metric of productivity. A language that can deliver a piece of software with a lower lifetime TCO should be considered more productive simply because more was produced for less.

TCO encompasses everything from time-to-market risk, development costs, maintenance costs, failure-rate costs as well as any other overhead incurred.

My argument is that while dynamic languages may accelerate the initial delivery of a software solution, it does so at the cost of reliability and maintainability. This is detrimental for the TCO bottom line because in practical terms (at least for large, long-lived projects) it translates into decreased productivity.

“But compiled languages are too hard!”


The place for dynamic languages

With all that being said, I must disclose that I often use dynamic languages in my research when it makes sense, mostly for throwaway code or prototyping. In fact, one of my favorite tools (MATLAB) is centered around a particularly terrible dynamic language. What I am against is using dynamic languages for the development of code intended for production environments. That is all.


If you love our planet and you love computer science, I urge you to not take the easy way out, embrace the beautiful complexity of machine efficient code and write greener programs by using a compiled language. It can only make you smarter in the long run :)

]]> 0