Slide 1

Slide 1 text

Crafting 3D User Interfaces for the Web Mikko Mononen May 16th 2012 –Webshaped 2012

Slide 2

Slide 2 text

• Co-founder, Programmer–Design at Tinkercad • Formely games dude specialized in AI • Crysis1, Zen Bound, Killzone3, Recast & Detour • Tinkercad is 3D modeling tool for artist, makers, and tinkers alike, that let’s you design 3D printable items online @MikkoMononen mikko@tinkercad.com

Slide 3

Slide 3 text

Motivation • WebGL is here, great platform to create 3D content • Designing 3D UIs has been relatively niche field up until now • Very few resources on how to design 3D interfaces • Despite 3D games & tools, majority of users has not had exposure to 3D UIs • once they get past the threshold they are all thrilled!

Slide 4

Slide 4 text

Agenda 1. World & Constraints 2. Expectations 3. Meta

Slide 5

Slide 5 text

How does 2D look in 3D?

Slide 6

Slide 6 text

How does 1D look in 2D? nD point can be thought as segment in (n+1)D view 0D to 1D 1D to 2D 2D to 3D

Slide 7

Slide 7 text

Perspective Perspective projected 3D space is truncated pyramid Ortho Perspective

Slide 8

Slide 8 text

Moving 2D Object with 1D Mouse

Slide 9

Slide 9 text

1. We could slide along wall

Slide 10

Slide 10 text

2. ...or along bumpy surface

Slide 11

Slide 11 text

3. The object could be connected to an arm

Slide 12

Slide 12 text

4. The object could contain extra arms to allow pulling.

Slide 13

Slide 13 text

5. We could rotate the view and reuse our existing knowledge

Slide 14

Slide 14 text

• There is no single solution on how to map 2D to 3D • One situation can have many solutions and assumptions • Need to compensate for the limited input device • Need to gradually teach the user how the UI works The Problem

Slide 15

Slide 15 text

Point-and-click

Slide 16

Slide 16 text

Spore Editor

Slide 17

Slide 17 text

World Structure Environment Environment Object Action Point Action Point Proxy Object Proxy Relates Constrains

Slide 18

Slide 18 text

Constraints Curve 1D Plane 2D Surface 3D

Slide 19

Slide 19 text

Circle, Sphere & Surface constraints to orient an organ.

Slide 20

Slide 20 text

Plane constraint to position spine.

Slide 21

Slide 21 text

Surface & screen constraints to position limbs.

Slide 22

Slide 22 text

World • World structure • world – where things are (frame of reference) • objects – things that belong to world (primary point of action) • proxy objects – augments objects (secondary point of action) • each action point has one constrain the user can manipulate • can be changed by modality (i.e. move, scale, rotate tools) • user learns to interact with the world through discovery Environment Object Action Point Action Point Proxy Relates Constrains

Slide 23

Slide 23 text

Tactile • Build illusion of solid world the user can “feel” • When the user moves the pointer perfectly along the constraint, the pointer should stick to the object • If possible use animation and simulation to enforce the weight and feel of the object (i.e. inertia)

Slide 24

Slide 24 text

1. World & Constraints 2. Expectations 3. Meta Expectations

Slide 25

Slide 25 text

Expectations • Prior knowledge is good tool to bootstrap learning • Fantasy of Familiar is a game design concept to set expectations 1. use existing knowledge to set expectations 2. enforce expectations via visual cues and feedback 3. build foreign concepts on top of that once the user learns the limits

Slide 26

Slide 26 text

Fantasy of Familiar in Games

Slide 27

Slide 27 text

Zen Bound

Slide 28

Slide 28 text

Tinkercad

Slide 29

Slide 29 text

Fantasy of Familiar • Related skeuomorphs, but does not aim to be realistic • Use visual cues to hint how the world behaves • Enforce it through feedback on primary actions • Build upon learned behaviors • Use secondary actions and proxy objects to augment primary actions

Slide 30

Slide 30 text

1. World & Constraints 2. Expectations 3. Meta Meta

Slide 31

Slide 31 text

Meta • Meta level contains the world attributes that are not visible • Primary and secondary action points can get crowded • Use modality to organize cognitive load • Tools and selections are common way to limit action points • Be aware adds extra layer to learn and to explain • If you need modes, try to have one that allows to learn the basics

Slide 32

Slide 32 text

Meta – View • People freak out when you need to use a tool to change the direction of your head • Try to limit how often camera needs to be used early one (experts need it!) • Teach it gradually, first using safe clumsy controls • FarmVille has taught users to deal with one kind of view/camera manipulation • Make view manipulation something that happens automatically (i.e. right mouse button)

Slide 33

Slide 33 text

Tinkercad lesson for view manipulation

Slide 34

Slide 34 text

Summing it up • Use Fantasy of familiar to build expectations • Use constraints to make 3D problems 2D • Use primary object interaction to enforce fantasy • Use secondary handles to do the rest direct manipulation • Use modality to simplify • Be aware of the meta

Slide 35

Slide 35 text

Tinkercad is hiring! @MikkoMononen mikko@tinkercad.com