ruby javascript python webgl scaling aws math rendering

HTML5 floorplan viewer renders 2D view a lot faster

A lot faster than our current Flash floorplan viewer that is. Try it out yourself with this massive floorplan.

Btw. our WebGL engine is not fully up for this task of rendering this floorplan in 3D (yet).

Tuesday, April 15, 2014   ()

New (beta) HTML5 2D/3D floorplan viewer available for all floorplans

We made a fair bit of progress with our new HTML5 floorplan viewer app. Last time the 3D view (WebGL) was only available in a test app, but now we merged it with the 2D view (Canvas) to create an actual viewer app.

As the title suggests, you can open any floorplan on in the new floorplan viewer app. It’s not in production yet, but you can get it by manually adjusting the URL. Make sure the URL looks like this:{projectID}/desktop

You can see two samples of random floorplans here:

Please try it out yourself and if you encounter any issue let me know.

Friday, March 21, 2014   ()

How to install RVM, Ruby, Rails, MySQL, MongoDB on Mac OSX Mavericks

Installing Ruby on Rails on a Mac can be a daunting task. From 10.6 to 10.9, I’ve been through all the issues. Starting with mac ports and all kinds of ruby installers. I’m going to explain how to setup the rails environment as easy as possible. We’re going to start with a clean Mavericks install, so we don’t have any conflicts with already installed software.

Step 1. Install Homebrew

Homebrew is a package manager for the Mac. Just like you have apt or yum on linux. It can install all sorts of applications and libraries. Start off with installing Homebrew by issuing the following command:

ruby -e "$(curl -fsSL"

To make sure Homebrew is installed correctly run:

brew doctor

Step 2. Install RVM

RVM stands for Ruby Version Manager. It can manage multiple ruby versions. This is especially handy when you have more than one applications to control. But it’s also handy to isolate ruby and it’s gems. Starting a new app with the latest version of ruby, no problem, while still running your older app simultaneously.

\curl -sSL | bash -s stable

Reload your bash_profile, so it can initialise RVM.


Run RVM requirements to install basic required packages with Homebrew. Accept the license agreement and install Xcode Tools. After installing the tools continue the rvm requirements installation.

rvm requirements

Step 3. Install latest Ruby

Install ruby, ruby-head is the latest version. You can also use 1.9.3 for example or even a ruby version with a different patchlevel. For ease of use we use ruby-head. You can call ‘rvm list known’ for all available rvm environments.

rvm install ruby-head

Optional. Install Git

Git a version control system, which can be used to control your code repository.

brew install git

Optional. Install MySQL

Install MySQL database and the client to connect to it. This used to be a tricky ordeal because the mysql2 gem needed specific locations for the files. Right now it should work out-the-box.

brew install mysql

Optional. Install MongoDB

MongoDB is very well known document database. Only install it when you know you need it. There are many alternatives such as Redis for key-value database.

brew install mongo
sudo mkdir -p /data/db/
mongod # to start

Optional. Install PostgreSQL

Postgres is a more advanced SQL database. I think it’s becoming more default now since MySQL was taken over by Oracle. Decide which one you would want to use. Beginners can better start with MySQL.

brew install postgresql

All done!

That’s it after install all these packages you can start a new rails app by running:

rails new your_application_name

Rails shouldn’t be that hard to install anymore. Best of luck!

My working environment

Lastly, here is my Mac working environment. I use all of the applications on a daily basis:

Friday, March 7, 2014 — 1 note   ()

First new Floorplanner tutorial movie: how to draw walls

In a previous post I mentioned that we bought a Yeti microphone to create tutorials with sound. However, for this first new tutorial movie we didn’t use Yeti,  because we didn’t have it yet. For the next ones we’ll use it.

Hopefully you’ll be amazed by the sound quality then!

Tuesday, March 4, 2014 — 1 note   ()

A Yeti microphone to create tutorial movies with sound

We got a new gadget at the Floorplanner office! It’s an USB microphone called Yeti.

The Yeti is one of the most advanced and versatile multi-pattern USB microphones available anywhere. Combining three capsules and four different pattern settings, the Yeti is an ultimate tool for creating amazing recordings, directly to your computer. With exceptional sound and performance, the Yeti can capture anything with a clarity & ease unheard of in a USB microphone.

Why do those guys need a microphone you might ask. Well, that’s because we are creating a new set of tutorial movies, and this time they will have sound! Yes they will have sound, unlike our silent-hit-movie with over 2.5M YouTube views.

Keep an eye on the Floorplanner help section for the new tutorial movies.

Tuesday, February 25, 2014 — 1 note   ()

A first glimps of Floorplanner’s new 3D floorplan rendering using WebGL


See a live demo here (best performance in Chrome).

We are working for some time now on using WebGL to render 3D floorplans on the client and I think the time has come to share the first beta version with you.

Our new WebGL version has to improve two things over to our current Flash version; the floorplan has to look better and it has to load faster, a lot faster. We are not there yet, but I think we are making great progress.

For our new WebGL engine we use a technique called deffered rendering. If you are interested to learn more about it check out Florian Boesch’ post WebGL Deferred Irradiance Volumes and our Rendering transparency in a deferred pipeline.

A very nice feature of the new viewer is that it’s completely backwards compatible. So when we’ll launch the new WebGL viewer all the floorplans in our database - nearly 12 million and counting - will be instantly more beautiful and load a hell of a lot faster!

See a live demo here (best performance in Chrome).

Wednesday, February 19, 2014   ()

Buy Roomstyler Credits with Bitcoin


At Floorplanner we like Bitcoin and that’s why you will soon be able to purchase Roomstyler Credits by paying with Bitcoin.

We are now in the final stages of testing the new system, so buying and spending Roomstyler Credits is - at this moment - limited to a small group of users. If we don’t encounter big road blocks we should be able to release it within a couple of weeks.

Roomstyler Credits, why? Well, that’s because we are going to offer premium features and those premium features won’t be free. Think of rendering photo realistic interior images at a higher resolution or requesting custom 3D furniture models or materials. And this is just the start, many more premium features will follow (for example virtual panoramas).

Most of the premium features will cost a small amount of money - only a couple of Euros - and most people don’t like going through a payment system for only a small amount of money. That’s why we are introducing credits. Buy a couple of credits once and spend them - without any friction - on all kinds of different things.

So if you are looking for a new and creative way to spend your Bitcoins, you might consider becoming an interior designer at Roomstyler.

Thursday, February 6, 2014 — 1 note   ()

An experiment to create a virtual panorama from a Roomstyler room

We did an experiment - see live demo here - so see if we could create a virtual panorama from an existing Roomstyler room. The room we used is called Modern Vintage Nursery and was made by ladyfakessi (btw. she won the Nursery Room contest with it).

For the panorama we created a standard cubestrip image by rendering several images and stitching them together. The viewer we used for this experiment is the krpano Panoramic Viewer.

The experiment showed us that it is possible to create panoramas from Roomstyler rooms. So potentially we can turn any room into an interactive panorama! But… it took very long to render the needed images at this resolution, over 3 hours. Hopefully we’ll find a way to substantially decreased this time by improving our render speed.

See live demo here.

Wednesday, January 29, 2014   ()

New toys for the Floorplanner office to improve photo-realistic render quality and speed


Since the launch of Roomstyler we are in the business of rendering photo-realistic images. Interior designs in our case.

Today, new rendering hardware was delivered to our office.Yay! We are going to use it to test a couple of different render engines. We want to improve the quality of the images, but we also want to create them faster, real time if possible. Quite an interesting challenge!

First things first, let’s get this puppy up and running.

Monday, January 27, 2014   ()

stone age survival tech

You would expect some high-tech post about 21-st century tech, right? I too originally had planned of writing about the largest and bleediest edge multitouch tables known to man. But then something happened, and the meaning of tech in its essence is suddenly much more relevant to me.

from Greek τέχνη, techne, “art, skill, cunning of hand”; and -λογία, -logia The making, modification, usage, and knowledge of tools, machines, techniques, crafts, systems, and methods of organization, in order to solve a problem, improve a pre-existing solution to a problem, achieve a goal, handle an applied input/output relation or perform a specific function.

Actually the very first tech ever -controlled fire- is the subject of this post, I’ll tell you why:

How will a programmer survive the frozen wilderness (in a comfortable way)?

In a few days I’ll go on a long christmas holiday with a group of friends. We’re going to the north of Sweden to enjoy some ice fishing, northern light, sauna sessions and feasting. Since most of my friends are artists, we usually watch alot of obscure movies do a lot of drunken disco dancing and try to impress each other with 12 course organic meals. I tend to bring my laptop to do some hobby projects or some impulsive collaborations with my friends. I was also looking forward very much studying astronomic systems with Stellarium.

Anyway, nature has gotten in the way of those plans.


A few days ago the biggest storm of the century (named Ivar) has happened in Sweden, rendering the roads useless and electricity is down in the region we’re going. The road problem is not that hard; apparently we can park a mile away and use sleighs or snow scooters to bring our stuff over the frozen lake. The electricity problem is a bit more problematic. Off course we will bring a diesel generator, but to do some cooking (for 14 people) on an electrical stove connected to a generator sounds very crappy. Especially considering the meals are supposed to be grand and impressive.

We just really need some serious ovens for cooking. I haven’t got any real winter survival skills, I only ever helped building a pizza oven with clay and straw once. In the middle of summer. Clay and straw aren’t available at this time of year though. So I don’t think that knowledge is very helpful either.

The tools and materials I will have at my disposal :

  • wood-axe
  • shovel
  • stones in all shapes and sizes
  • ice
  • moss
  • wood
  • frozen soil
  • gasoline, oil, lighter

Many DIY wood ovens I find involve brick and mortar, We don’t have those, and even if we did I believe the freezing cold will prohibit mortar of setting. So that isn’t an option. Off course our forefathers managed some hardcore ice ages just fine without bricks, so there are alternatives.

For now I cannot do more then print out and plastify those pages, I’ll test the theory in practice in a few days. I’ll report back at that time. (When I won’t freeze to death) So as a goodbye I’ll put this quote here:

"Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth.

Tuesday, December 17, 2013   ()