👋🏼 Hi,

👋🏼 Hi,

👋🏼 Hi,

I'm

I'm

I'm

Nicole —

Nicole —

Nicole —

award-winning product

award-winning product

award-winning

product

designer, leader, &

designer, leader, &

designer,

leader, &

innovator

innovator

innovator

I’m currently a Lead/Principal Product Designer & Sr. Manager at Matterport, creating the future of immersive experiences in digital twins. I lead our XR tooling, patented generative AI, award-winning datafication initiatives, and a crew of incredibly talented designers. I also run a small innovation shop — Morphic Studio.

I’m currently a Lead/Principal Product Designer & Sr. Manager at Matterport, creating the future of immersive experiences in digital twins. I lead our XR tooling, patented generative AI, award-winning datafication initiatives, and a crew of incredibly talented designers. I also run a small innovation shop — Morphic Studio.

Open to New Opportunities

Some

Some

Some

of

of

of

the

the

the

organizations

organizations

organizations

I've

I've

I've

worked

worked

worked

with

with

with

Case studies

Case studies

Case studies

of

of

of

my

my

my

0 to 1

0 to 1

0 to 1

foundational

foundational

foundational

experiences

experiences

experiences

Web

Mobile

AI

3D / XR

0 → 1

Capturing a new user segment & disrupting the landscape of interior design, architecture, and space planning with the magic of big data & AI solutions.

Capturing a new user segment & disrupting the landscape of interior design, architecture, and space planning with the magic of big data & AI solutions.

Read the case study ↗

Dark-Mode In-Device
Dark-Mode In-Device
Dark-Mode In-Device
Semi-Final Web
Semi-Final Web
Semi-Final Web
Semi-Final Mobile
Semi-Final Mobile
Semi-Final Mobile
Site Map
Site Map
Site Map

Web

Mobile

ML

3D / XR

0 → 1

Connecting people across distances to solving problems & enabling a new era of remote collaboration with XR video.

Connecting people across distances to solving problems & enabling a new era of remote collaboration with XR video.

Read the case study (password: alohomora) ↗

Read the case study

(password: alohomora) ↗

Philosophy

Templates

How I Lead

How I motivate & support my cross-functional partners, product teams, and direct reports.

How I motivate & support my cross-functional partners, product teams, and direct reports.

Coming soon 🔜

You'll

You'll

You'll

love

love

love

working

working

working

with

with

with

me

me

me

Frequently

Frequently

Frequently

asked

asked

asked

questions

questions

questions

Can you describe your design process from concept to execution?

Can you share a project where you faced significant design challenges? How did you overcome them?

How do you collaborate with cross-functional teams, such as product managers and engineers?

How do you prioritize design initiatives in alignment with business goals?

How do you approach presenting your design work to stakeholders?

Can you describe your design process from concept to execution?

Can you share a project where you faced significant design challenges? How did you overcome them?

How do you collaborate with cross-functional teams, such as product managers and engineers?

How do you prioritize design initiatives in alignment with business goals?

How do you approach presenting your design work to stakeholders?

Can you describe your design process from concept to execution?

Can you share a project where you faced significant design challenges? How did you overcome them?

How do you collaborate with cross-functional teams, such as product managers and engineers?

How do you prioritize design initiatives in alignment with business goals?

How do you approach presenting your design work to stakeholders?

Nicole Guernsey

Innovation, Design, Strategy

Innovation, Design, Strategy

<canvas class="fireworks" width="3692" height="2280"></canvas>
body{
	background-color: desaturate(darken(#fff, 50%), 60%);
}
var fireworks = (function() {

  var canvasEl = document.querySelector('.fireworks');
  var ctx = canvasEl.getContext('2d');
  var numberOfParticules = Number(location.href.split('?')[1]) || 40;
  var pointerX = 0;
  var pointerY = 0;
  var tap = ('ontouchstart' in window || navigator.msMaxTouchPoints) ? 'touchstart' : 'mousedown';
  var colors = ['#FFf', '#ababab', '#fff', '#ababab'];

  function setCanvasSize() {
    canvasEl.width = window.innerWidth * 2;
    canvasEl.height = window.innerHeight * 2;
    canvasEl.style.width = window.innerWidth + 'px';
    canvasEl.style.height = window.innerHeight + 'px';
    canvasEl.getContext('2d').scale(2, 2);
  }

  function updateCoords(e) {
    pointerX = e.clientX || e.touches[0].clientX;
    pointerY = e.clientY || e.touches[0].clientY;
  }

  function setParticuleDirection(p) {
    var angle = anime.random(0, 360) * Math.PI / 180;
    var value = anime.random(50, 180);
    var radius = [-1, 1][anime.random(0, 1)] * value;
    return {
      x: p.x + radius * Math.cos(angle),
      y: p.y + radius * Math.sin(angle)
    }
  }

  function createParticule(x,y) {
    var p = {};
    p.x = x;
    p.y = y;
    p.color = colors[anime.random(0, colors.length - 1)];
    p.radius = anime.random(2, 8);
    p.endPos = setParticuleDirection(p);
    p.draw = function() {
      ctx.beginPath();
      ctx.arc(p.x, p.y, p.radius, 0, 2 * Math.PI, true);
      ctx.fillStyle = p.color;
      ctx.fill();
    }
    return p;
  }

  function createCircle(x,y) {
    var p = {};
    p.x = x;
    p.y = y;
    p.color = '#FFF';
    p.radius = 0.1;
    p.alpha = .5;
    p.lineWidth = 6;
    p.draw = function() {
      ctx.globalAlpha = p.alpha;
      ctx.beginPath();
      ctx.arc(p.x, p.y, p.radius, 0, 2 * Math.PI, true);
      ctx.lineWidth = p.lineWidth;
      ctx.strokeStyle = p.color;
      ctx.stroke();
      ctx.globalAlpha = 1;
    }
    return p;
  }

  function renderParticule(anim) {
    for (var i = 0; i < anim.animatables.length; i++) {
      anim.animatables[i].target.draw();
    }
  }

  function animateParticules(x, y) {
    var circle = createCircle(x, y);
    var particules = [];
    for (var i = 0; i < numberOfParticules; i++) {
      particules.push(createParticule(x, y));
    }
    anime.timeline().add({
      targets: particules,
      x: function(p) { return p.endPos.x; },
      y: function(p) { return p.endPos.y; },
      radius: 0.1,
      duration: anime.random(1200, 2200),
      easing: 'easeOutExpo',
      update: renderParticule
    })
    .add({
      targets: circle,
      radius: anime.random(80, 160),
      lineWidth: 0,
      alpha: {
        value: 0,
        easing: 'linear',
        duration: anime.random(600, 1200),  
      },
      duration: anime.random(1200, 2200),
      easing: 'easeOutExpo',
      update: renderParticule,
      offset: 0
    });
  }

  var render = anime({
    duration: Infinity,
    update: function() {
      ctx.clearRect(0, 0, canvasEl.width, canvasEl.height);
    }
  });

  document.addEventListener(tap, function(e) {
    window.human = true;
    render.play();
    updateCoords(e);
    animateParticules(pointerX, pointerY);
    ga('send', 'event', 'Fireworks', 'Click');
  }, false);

  window.addEventListener('resize', setCanvasSize, false);

  return {
    render: render,
    setCanvasSize: setCanvasSize,
    animateParticules: animateParticules
  }

})();

window.onload = function() {
  fireworks.setCanvasSize();
}