A few years ago I sold all my stuff to explore the world, creating 12 startups in 12 months and building $1M+/y companies as an indie maker such as Nomad List and Remote OK. I'm also a big pusher of remote work and async and analyze the effects it has on society. Follow me on Twitter or see my list of posts. My first book MAKE is out now. Contact me
Subscribing you...
Subscribed! Check your inbox to confirm your email.
levels.io

From web dev to 3d: Learning 3d modeling in a month

Learning 3d
May 19, 2016

A few months ago I set myself the challenge to recreate this photo (shot by Masashi Wakui)

makashiwakui_header

By modeling it in 3d!

At the end I had this (I promise no IRL cats were harmed in the process, VR cats were DEFINITELY harmed and possibly killed though):

This 3d challenge turned into a month-long personal adventure which brought me all across the world to Tokyo and back:

And after a few months, I could now walk in my street in VR!

I’ll tell you about that later in this post. Now read!

Why?

Well, I had never done any 3d before. I’ve coded and designed web apps like Nomad List. I’ve produced electronic music. But I’ve never made 3d.

The rise of virtual reality is going to change things in the next decade. First we’ll see it in gaming. But quickly after, it will take over all software interfaces.

Why have a flat 2d dashboard when we can see our data visualized around us?

And think about content. Who needs a New York Times text article telling us about the destruction of Palmyra in Syria, when we can transport ourselves there and experience what happened in immersive 3d?.

I am very aware how new paradigms can make your skills irrelevant overnight. So I felt it was time to install my own human firmware upgrade and learn 3d.

Help! Where do I start?

Where do you start though if you never did any of this?

Before doing anything I wanted to think about how I’d approach this. In web development, I don’t do things in the proper way (e.g. I don’t use SASS, Grunt, Gulp, Node.JS, Meteor or React), instead I’m extremely pragmatic. I use a text editor and I write plain code. It’s simple and fast and works for me. I wanted to do the same while making 3d.

Another thing was that I learn better from practice, not theory. Doing courses on stuff makes me “know” about how to do things but I won’t learn how to actually do the things. That’s why I wanted to dive straight in with a project like this. It had a specific end goal: “does the 3d scene look like the photo?”, if “no”: go to start, if “yes”: you win!

If I wouldn’t know something, I’d simply Google it. Every single thing. That’s what I did to learn coding, and that’s what I will do to learn 3d:

Screenshot 2016-05-20 16.50.24

I knew the existence of 3d software like Maya and 3d Studio Max. But they seemed like Java and C++ to me. Great for pros, but not simple at all. I wanted to find the JavaScript of 3d. Simple, easy and practical. I found that in Cinema4D and it looks like this:

Screen_R16_Studio_01

The joys of 3d development

The great thing about 3d vs. web development is that everything fits in one package.

For newbies in web dev, it’s hard to see how all the different parts fit together. You use HTML to layout, then CSS to style, then JavaScript to do client scripting and a server language to connect to the MySQL database? Help! Luckily, with 3d there’s hardly any parts. Everything is mostly inside your 3d program of choice.

There’s no text editor, no minifier, no compiler, no deploy scripts, no unit tests, no server, no back end, no front end. It’s just one big app with a 3d view and endless amounts of internal panes where you can adjust every little detail of an object, light or scene.

Screenshot 2016-03-04 20.32.45

What about deployment? Your deployment is a render. A .jpg picture or a .mp4 video file.

Simple.

P.S. If you don’t want to see the process, click here to skip to the final part.

Modeling

For now though, I wanted to get going. So I installed Cinema4D and opened it. I literally just started modeling by pressing the first button that looked like a cube:

Screenshot 2016-05-15 19.16.46

…and stretching it by dragging it until it looked an object that was on the photo I was modeling. I started with a little wooden stand:

Screenshot 2016-05-15 19.16.58

For a start I went into Photoshop and cut out the basic textures from my photo. This was cheating though but it was only temporary. I literally just dragged the textures as files onto the model in C4D and it put it on there.
Screenshot 2016-05-25 15.46.25
That worked! Easy:

Screenshot 2016-05-15 19.18.12

I then added two walls, a asphalt floor, the lanterns and the bar sign. I still used the textures straight from the photo so it looked very low-res. Like a 1996 video game:

day-1

Shapes

I learnt that everything in 3d starts with basic shapes. Like a cube, ball, cylinder or tube:

Screenshot 2016-05-15 19.22.23

That was limiting though. How could I make stuff like the curtain? That’s not a basic shape at all:

Screenshot 2016-05-15 19.24.49

That’s when you start drawing and combining shapes:

You use layers functions (called Arrays) to connect to shapes (in this case two Splines, which are like Illustrator paths):

That’s when you get this:

day-23-curtains

You can also combine cylinders with cubes, for example here I made an aircon unit that way:

Details

The scene now looked like this:

Screenshot 2016-02-04 01.40.21

I added better lights:

day-22

And I started adding more tiny details, like giving the wooden sign depth:

Screenshot 2016-02-22 15.02.13

High res texturing

Until now I used textures straight from the lo-res photo. So I started recreating the textures in hi-res, simply with some Japanese fonts, paper textures and coloring:

2016-02-29-sapporohook

I found logos online from the places in the street, like Bar 254’s website:

Screenshot 2016-05-07 18.19.17

I then applied my self-made textures and everything suddenly started to look much better.

2016-02-27-poster-sign

Shadows

And I found the button to enable shadows:

Screenshot 2016-05-15 19.31.14

That worked:

day-25-shadows

Improving rendering

Then there was somebody who suggested tweaking my render settings. I changed my render mode to Physical, which results in more realistic but heavier rendering.

I also enabled Ambient Occlusion, which is a technique to increase realism by estimating shadows around objects, it’s subtle, but you can see it on the edges of the poles and the curtain here:

day-23-render w occlusion and physical

Lights

Adding lights was another challenge. I literally experimented for ages trying to get it right and it’s still not there. I think this is the hardest part about 3d modeling.

Screenshot 2016-03-04 20.33.48

2016-03-01-canvas

2016-03-01-aircon box

Slowly the shapes started to come together and it started to resemble the photo:

Manholes

We weren’t there yet though. I had to add more small details. Like the manholes in the street:

I found a photo of Tokyo manhole:

I then cut out the texture:

And put it in:

It now looked like this:

HD rendering

Until now I was limited to low-res rendering. I switched to HD rendering and everything started looking much better:

Doors

I added the door panels which was pretty much lots of copy and pasting of little bars:

And another one:

I made the door’s glass reflective. Which was simple by adding a texture that had high reflectivity:

Screenshot 2016-03-01 03.32.58

I then added the shop at the end of the street (hardly visible but it’s there):

Screenshot 2016-05-15 19.48.28

2016-04-13-render2

Here’s the final wireframe and shapes:

tokyo_2016-05-16-2

tokyo_2016-05-16-3


Finally, here’s what I ended up with on day 31:

tokyo_2016-05-20ajpg

And in SketchFab 3d:

On mobile you can even see it inside a VR viewer:

photo44036811243247198

I then proceeded to add 100 cats…

![tokyo_2016-05-17-cats5](/content/images/2016/05/tokyo_2016-05-17-cats5-1.jpg)

tokyo_2016-05-17-cats3

Twitter

During the whole 30 days of learning 3d, I shared my 3d updates on Twitter:

Day 29 of Learning 3d (GIF) 🎮 Glass, 💎reflectives, 🔍HD, 🌈coloring and more details 🇯🇵🏮✏️ https://t.co/aqDVGss8oA pic.twitter.com/ZdFQV9j50x

— levels.io (@levelsio) March 3, 2016

Then a random guy from Twitter called @shoinwolfe sent me a video of the street I was modeling, IN REAL LIFE!

@levelsio Brb gonna go into the dark depths of northern Tokyo 🏮😎🏮 Will send pics tomorrow 👍🏻

— Shoin Wolfe (@shoinwolfe) February 4, 2016

@levelsio Found it! Teaser vid 📽 pic.twitter.com/TNrKE58LJd

— Shoin Wolfe (@shoinwolfe) February 5, 2016

I watched his video hundreds of times to get an idea of the depth of the scene. Because the photo I had was flat and I had to guess everything.

Let’s…go….to Tokyo!

Coincidentally, I was visiting Korea, which is, well, next to Japan! And what better way to get a REAL idea about what I was modeling than, well, actually standing in it?

24 hours later, I land in Tokyo.

pic.twitter.com/LOKu7SCfSm

— levels.io (@levelsio) May 4, 2016

I meet up with Shoin (the guy from that random Twitter video) and Shane (those names tho).

photo44036811243247156

Yes, that’s Gundam (I was told).

Shoin takes me to the neighborhood of Itabashi in Oyama-cho.

photo44036811243247157

On our way we saw a gun shop that could’ve come just out of a video game.

IMG_20160505_185107

Walking on towards the alley, I started periscoping the whole journey:

It’s so weird as I’ve seen this scene so much, modeling it for hours on end based on different photos to try and get an idea of how it looks in depth. And now Shoin brought me here and we’re on a side street of it.

We go right into a dark little pathway and suddenly, there it is!

photo44036811243247160

OMGs were had

I’m slightly shaking and shocked. I’ve been in this street for ages, inside Cinema4D. Now I’m actually there. Everything looks much smaller than I thought. It’s tiny! But just as impressive as the photos I saw. There’s endless details everywhere. From small plant pots, to little menu signs, to small random artifacts. It’s really dark and that’s why the lanterns dominate the coloring of the entire scene so much. It’s hard to capture in a photo as it’s so dark, so any photo you make has to be quite a long exposure shot.

The main area of interest of this scene is clearly the bar on the left side called Bar 254. It’s a whisky bar (I googled it) and it’s literally considered a “tiny bar”. These are small Japanese drinking establishments literally the size of a tiny room or closet. You can just fit in a barkeeper, and maybe 4 or 5 guests. But it’s cosy. And impossible to keep a conversation to yourself. So it usually becomes one big group shouting match inside a tiny bar. Haha.

IMG_20160505_193405

We enter Bar 254 and meet the owner. Shoin uses his Japanese and asks if the owner knows his street is getting slightly famous. He tells us he knew there’s a professional photographer who took a picture here but instead of mentioning the right name (Masahi Wakui), he mentions someone else…

DSC01642

I tell the owner I modeled his bar and street for weeks. He seems impressed but also completely oblivious why anyone would pursue such an endeavor. I show him my 3d scene and he smiles. He still doesn’t understand why though. Haha, I don’t understand why either!

Shoin says he feels like we’re kids from a local art college who did a school project, haha. I see why.

DSC01629

Comparisons

I take some shots around the street, so I can compare them here now with the 3d scene and make the score:

photo44036811243247159

2016-05-13-1

photo44036811243247164

tokyo_2016-05-13-2

photo44036811243247165

tokyo_2016-05-13-6

photo44036811243247163

2016-05-13-3

photo44036811243247162

2016-05-13-4

Some parts are very off, as I had no way of seeing how they looked before being there. There’s definitely tiny details missing that I didn’t have time for or prioritize. I like the last few pics most.

What did I learn?

This was one of the most fun things I did in ages. It was super refreshing to learn something I was never any good at. Something that was creative, didn’t have a purpose, but just fun.

It didn’t have to get page views, get users or make money. Just pure creativity. I needed that after the last few years 🙂

The modeling and decorating the scene was extremely meditative. I know while coding you can get into some deep zones, but tweaking a little 3d object for hours just makes me enter an extra zoned out brain state. It feels great and reminds me of when I used to be in Photoshop for hours as a teenager.

Basic 3d isn’t hard. I’d say the biggest challenge is getting the light right. Pretty much the same challenge as with photography.

The way of learning this was very useful to me. Instead of reading books or taking courses, I just dove in and tried to make something. And I every little thing I didn’t know, I just Googled. From “how to carve out text cinema4d” (answer: use a Boole) to “how to make an object give off light” (answer: enable illumination on its material).

If you want to learn it, I’d recommend trying to make a little scene too. Stick with it. Modeling after a photo works and gives you a very clear end result that you have to come close to.

I also learnt you should do weird stuff that has no point, because you end up on a fun adventure that will bring you to Tokyo! 😀

What’s next

The next step is actually making it possible for people to walk around in my scene inside virtual reality. But on the web. How? Well, there’s Unity 3d. Which is a 3d engine that enables you make your scene interactive. It’s mostly used by game developers (especially like the whole indie game scene), but you can make anything with it, really.

Luckily for me, Unity 3d supports the new web standard for 3d called WebGL (and soon WebVR), which means in the end I’ll be able to showcase my 3d scene inside a web browser and VR device easily. That’s great because I can give you a URL to my site and you can put your phone in a Google Cardboard VR viewer or hook it up to Oculus and instantly you’re in my little 3d world.

The future is here 🙂

Next I’ll show you how after a few months, I can now walk in my street in VR!

P.S. I'm on Twitter too if you'd like to follow more of my stories. And I wrote a book called MAKE about building startups without funding. See a list of my stories or contact me. To get an alert when I write a new blog post, you can subscribe below:

Subscribing you...
Subscribed! Check your inbox to confirm your email.

2022
18 Sep
This House Does Not Exist
2022
14 Jul
Sam Parr + Shaan Puri asked me about bootstrapping, open startups and lifestyle inflation (My First Million Podcast)
2022
16 May
Thinking and doing for yourself (Life Done Differently Podcast)
2022
10 May
Relocation of remote workers (Building Remotely Podcast)
2022
26 Jan
Money, happiness and productivity as a solo founder (Indiehackers Podcast)
2022
20 Jan
Bootstrapping, moving to Portugal and setting up Rebase (Wannabe Entrepreneur Podcast)
2021
25 Mar
Why I'm unreachable and maybe you should be too
2021
25 Mar
The next frontier after remote work is async
2021
19 Mar
List of all my projects ever
2021
08 Mar
Why coliving economics still don't make sense
2021
14 Feb
Inflation Chart: the stock market adjusted for the US-dollar money supply
2021
10 Jan
I did a live 4+ hour AMA on Twitch w/ @roxkstar74
2020
20 Dec
No one should ever work
2020
10 Dec
Normalization of non-deviance
2020
05 Dec
Copywriting for entrepreneurs: explain your product how you'd explain it to a friend
2020
30 Nov
Entrepreneurs are the heroes, not the villains
2020
12 Nov
The future of remote work: how the greatest human migration in history will happen in the next ten years
2020
05 Nov
Will millions of remote workers become location independent in 2021?
2020
11 Apr
5 years in startups with Abadesi
2020
11 Jan
Twitter giveaways can be hacked to win every time
2019
16 Oct
Lorn - The Slow Blade ✕ Hong Kong
2019
28 Sep
Most decaf coffee is made from paint stripper
2019
12 Sep
The odds of getting a remote job are less than 1% (because everyone wants one)
2019
08 Sep
In the future writing actual code will be like using a pro DSLR camera, and no code will be like using a smartphone camera
2019
29 Aug
Instead of hiring people, do things yourself to stay relevant
2019
28 Aug
Nobody cares about you after you're dead and the universe destroys itself
2019
28 Aug
The only real validation is people paying for your product
2019
05 Aug
Monitoring Bali's undersea internet cable
2019
29 Jul
Nomad List turns 5
2018
29 Jan
I'm Product Hunt's Maker of the Year again!
2018
28 Jan
Why Korean Jimjilbangs and Japanese Onsens are great
2018
24 Jan
Turning side projects into profitable startups
2018
03 Jan
What I learnt from 100 days of shipping
2017
28 Dec
As decentralized as cryptocurrency is: so will be the people working on it
2017
22 Oct
How to 3d scan any object with just your phone's camera
2017
09 Aug
In a world of outrage, mute words
2017
03 Aug
How to pack for world travel with just a carry-on bag
2017
26 Jul
Building a startup in public: from first line of code to frontpage of Reddit
2017
24 Jul
Facebook and Google are building their own cities: the inevitable future of private tech worker towns
2017
21 Jul
The TL;DR MBA
2017
12 Jul
We did it! Namecheap has introduced 2FA
2017
08 Jun
It's about time for a digital work permit for remote workers
2017
23 May
Using Uptime Robot to build unit tests for the web
2017
08 May
Namecheap still doesn't support 2FA in 2017 (update: they do now!)
2017
03 May
Taipei is boring, and maybe that's not such a bad thing
2017
16 Apr
What we can learn from Stormzy about transparency
2017
17 Feb
The ICANN mafia has taken my site hostage for 2 days now
2017
10 Feb
Most coworking spaces don't make money; here's how they can adapt to survive the future
2017
11 Jan
A society of total automation in which the need to work is replaced with a nomadic life of creative play
2017
07 Jan
Nomad List Founder
2016
12 Dec
Make your own Olark feedback form without Olark
2016
29 Oct
How to fix flying
2016
19 Oct
Robots make mistakes too: How to log your server with push notifications straight to your phone
2016
17 Oct
Hong Kong Express - 上海 (Shanghai)
2016
17 Oct
Choosing entrepreneurship over a corporate career
2016
13 Oct
"I can't buy happiness anymore. I've bought everything that I ever wanted. There's not really anything I want anymore."
2016
11 Oct
From web dev to VR: How to get started with VR development
2016
05 Oct
What I would do if I was 18 now
2016
22 Sep
Bootstrapping Side Projects into Profitable Startups
2016
27 Aug
Kids
2016
13 Aug
How I cured my anxiety (mostly)
2016
26 Jul
We have an epidemic of bad posture
2016
17 Jul
Fixing "Inf and NaN cannot be JSON encoded" in PHP the easy way
2016
26 Jun
My third time in a float tank and practicing visualizing the future
2016
15 Jun
How to add shareable pictures to your website with some PhantomJS magic
2016
29 May
My chatbot gets catcalled
2016
19 May
From web dev to 3d: Learning 3d modeling in a month
2016
09 Mar
My second time in a sensory deprivation chamber
2016
04 Mar
Day 30 of Learning 3d 🎮 Cloning objects 👾👾👾
2016
02 Mar
Day 29 of Learning 3d 🎮 Glass, reflectives, HD, coloring and more details
2016
29 Feb
Day 27 of Learning 3d 🎮 Details, details, DETAILS!
2016
25 Feb
Day 23 of Learning 3d 🎮 Filling up the street and adding shadows
2016
24 Feb
Day 22 of Learning 3d 🎮 Added rain, blinking lights, sound, textured menu sign and a VR web app
2016
23 Feb
Day 21 of Learning 3d 🎮 High res textures, physical rendering and ambient occlusion
2016
22 Feb
Day 20 of Learning 3d 🎮 Objects and camera perspectives 🙆
2016
19 Feb
My first time floating in a sensory deprivation tank ☺️
2016
12 Feb
Day 10 of Learning 3d 🎮 Making complex objects by combining shapes 🙆
2016
06 Feb
Day 4 of Learning 3d: @shoinwolfe visits the actual street I'm modeling 🏮😎🏮
2016
03 Feb
Day 1 of Learning 3d 🎮 I learnt how to make shapes, move, rotate and scale them + how to texturize, and add colored lights 💆
2016
02 Feb
I'm Learning 3d 🎮
2016
27 Jan
The things I have to do to read an email sent to me by my government
2016
12 Jan
How to use your iPhone as a better Apple TV alternative (with VPN)
2015
23 Dec
Here's a crazy idea: automatically pause recurring subscription of users when you detect they aren't actually using your app
2015
17 Dec
Stop calling night owls lazy, we're not
2015
16 Dec
We are the heroes of our own stories
2015
25 Oct
There will be 1 billion digital nomads by 2035
2015
21 Oct
Tobias van Schneider interviewed me about everything
2015
18 Oct
Why doesn't Twitter just asks its users to pay?
2015
17 Oct
Punk died the moment we learnt that the world WAS in fact getting better, not worse
2015
15 Oct
Stop being everyone's friend
2015
14 Oct
Vaporwave is the only music that fits the feeling futuristic Asian mega cities give me
2015
09 Sep
We live in a world built by dead people
2015
01 Sep
Why global roaming data solutions don't make any sense
2015
26 Aug
How to export your Slack's entire archive as HTML message logs
2015
24 Aug
How to play GTA V on your MacBook (and any other PC game)
2015
14 May
I uploaded 4 terabyte over Korea's 4G, and paid $48
2015
08 May
How I sped up Nomad List by 31% with SPDY, CloudFront and PageSpeed
2015
04 May
My weird code commenting style based on HTML tags
2015
01 May
Now is probably the time to make HTTPS the default on all your sites and apps
2015
17 Apr
Do the economics of remote work retreats make any sense?