<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Pasquale D’Silva on Medium]]></title>
        <description><![CDATA[Stories by Pasquale D’Silva on Medium]]></description>
        <link>https://medium.com/@pasql?source=rss-a1f92dff5d8d------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*ZMUej7p0JOBv8Kx3tBDzHg.png</url>
            <title>Stories by Pasquale D’Silva on Medium</title>
            <link>https://medium.com/@pasql?source=rss-a1f92dff5d8d------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 13 Jul 2026 09:20:10 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@pasql/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Sculpting Software Animation]]></title>
            <link>https://medium.com/@pasql/sculpting-software-animation-7d818ddcd40a?source=rss-a1f92dff5d8d------2</link>
            <guid isPermaLink="false">https://medium.com/p/7d818ddcd40a</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[animation]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Pasquale D’Silva]]></dc:creator>
            <pubDate>Mon, 28 May 2018 16:19:35 GMT</pubDate>
            <atom:updated>2018-05-29T03:47:51.982Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/888/1*tU188zp8fuV7MnfaGR3v4Q.gif" /></figure><p>Designing animation is sculpting time. Timing is critical. If you don’t consider animation timing, <em>you’re not designing animation</em>.</p><p><a href="http://blog.animationmentor.com/animation-as-visual-music/">Animation is visual music</a>. Skilled animators employ rhythm, timing, tempo, composition, texture and dynamics.</p><p>The year is 2018, interface design tools are finally incorporating animation, but many are missing the mark. They’re naively bolting on animation, instead of giving users handles to control animation timing. Consequently, there’s now a landscape of software tools promoting <em>mushy</em> animation.</p><p>There’s a wealth of knowledge embedded in classical animation. We don’t need to reinvent the wheel.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*gTIfmFRZD1MkZw2GbQe5IA.gif" /></figure><h3>Triggered by motion</h3><p>You first sit down at a movie theatre to watch a flick, and you probably notice the exit signs, the edge of the screen, the heads of other patrons in your view. If the movie doesn’t suck, everything stationary fades away, and you feel enveloped in the picture. That is, until some jackass looks at their Instagram notifications in your peripheral vision, and you’re whisked back into reality.</p><p>We typically notice when things move, and stop noticing them when they’re still.</p><p>Motion holds our attention, so it’s worth considering how we direct it.</p><h3>Optical Toil</h3><p>Learning that “<em>Disney’s 12 principles of animation”</em> exists is not enough. That’s like a designer discovering that <em>design is how it works</em>™️ and calling it a day.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/930/1*7JQah0pc7DzJkGCBjdn1Uw.png" /><figcaption>A classic dribbble comment</figcaption></figure><p><strong>Inexperienced Interface Animators tend to over-animate everything</strong>. This is conflated with the pursuit of ‘delight’. They maintain a preciousness around the keyframes they placed, forgetting it will grow tired on the eye. There’s a false assumption the viewer is sitting around with baited breath, looking for hard work. This is reinforced by communities like dribbble, where users poop their pants with excitement when they see animation, because they’ve never seen it before. Truthfully, the best animation feels invisible.</p><p>Here’s a classic thing we see in interface work today: <em>The heavy-handed use of springs.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/1*wp1VT5v4KzVNcmuDIdalgA.gif" /><figcaption>Mushy</figcaption></figure><p>The oscillating interface element holds our attention for no reason. Our eyes are coaxed into focusing on it, because it takes too long to peter out. There’s suspense, and we’re hungry for the end position to be resolved.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/1*PyZaLt-77xyTsaeQhu_lKg.gif" /><figcaption>Improved, with controlled spring timing.</figcaption></figure><p>Our element feels like it has intent if we reduce the amount of overshoot oscillations. It’s succinct, but still cushioned with a single, intentional <em>overshoot. </em>This can be achieved by dialing in springs, parametric keyframes, or hand-timing. Ultimately, how it <em>feels</em> is what matters most.</p><p><strong>Let’s talk about morphing stuff</strong></p><blockquote>A play button turns into a hamburger, then into a close button, then it turns into a duck.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*ZTu6bgT2Y3bRIvsWAKyBhw.gif" /><figcaption>come on…</figcaption></figure><p>Another tasteless interface trope ... behold, the overzealous hamburger menu. Even if you did it without a spring, it’s <em>loud</em>. We don’t need to see a literal, attention grabbing transition to perceive a state change. You don’t have to morph everything into everything.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/371/1*DEKSvXC8MgaxL88qLZH3Iw.gif" /><figcaption>Mushy hamburger Icon in context</figcaption></figure><p>Let’s see it in context. Tune into where your eyes are looking. Do you notice the icon flapping around long after the broader transition is complete? What’s most important, is the <em>larger state change</em>, triggered by the button. Over-animated nonsense in the hamburger icon splits your attention here.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/409/1*-cZ-ZTu6nC4yXqjiO2r1jg.gif" /></figure><p>A more to-the-point approach, is to not morph the icon at all. Instead, we can focus on using subtle animation affordances to communicate interaction. It’s not about catching the eye. It’s about directing it. This button features a depression, and snappy spring back, with a heavily dampened ease, to re-enforce the feeling of pushing a button.</p><h3>EOIN DUFFY on Twitter</h3><p>The easy way to morph stuff - don&#39;t The old switcheroo always works :) https://t.co/3cUziSuJ18</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/373/1*Xbpcda8w0fh4D7Nzk82X2g.gif" /><figcaption>In context. Sorry about Medium’s gif compression…</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*EY8ayn4ZltxyNeyaTVAwbg.gif" /><figcaption>beware of optical toil</figcaption></figure><p><strong>It’s helpful to think about how you lead the eye across the screen</strong>. Think about your eyeballs swiveling in their sockets, darting around, accelerating, decelerating. You’re leading the eye when you animate. Where are you adding accents? Where should the eye settle? <em>More</em> tracking requires <em>more </em>physical and mental commitment. Is it worth optical fatigue to add some quirky offset animation? There’s nuance to balance; an economy of motion.</p><h3>Formula vs feeling</h3><p>Determine these for yourself. Don’t start with them. I’m talking about the prescribed, stiff, black &amp; white stuff like <a href="https://www.ibm.com/design/language/resources/animation-library">IBM</a> &amp; <a href="https://material.io/">Google</a> Formulas. Be skeptical.</p><p>Don’t trust the numbers, trust your eyes and feelings <em>first</em>. You can bend the rules of reality. Motion is an illusion, and you get to be the magician.</p><p>Consider the motivation &amp; intent of each element you choreograph. Literal isn’t always better. Animation is a medium where the impossible is appropriate. It’s right when it <em>feels</em> right.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*gUkvPm0lYeFh6hJFyAm7MA.gif" /></figure><p>Take these examples compared side by side. They’re both doing the same thing, but with different timing.</p><p>The example on the left is too literal . A view presenting itself onto screen doesn’t have to start from <em>0% scale</em>, and animate all the way up to <em>100% scale</em> to imply it spawning into space.</p><p>You can experience a punchier version by showing the result, and the wisps of time slightly before. All we need to do is carry the eye. On the right, we start the <em>scale at 90%</em>, approaching <em>100%</em> pretty quickly. We <em>feel </em>the scale, without having to sit through watching every value between<em> 0–100</em>. Nobody’s got time for that shit!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E_YI6zmAcLHQF4uLPZolOg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tiqiRLEj6y6gCQIr3vRCng.png" /><figcaption>Directing the eye to follow fast action. — <a href="https://amzn.to/2qrbKim">The Animator’s Survival Kit, Richard Williams</a></figcaption></figure><p>Let’s experiment with a more abstract example. Let’s move a shape across the screen:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/601/1*SVlQoEM-QzsVtw5VttmEig.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*bT45BRKdyI2wTgH8Rj2rXg.gif" /></figure><p>A linear, robotic tween. Cold right?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9F_LFv1IZLLXvpOmU6q5kA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*0wzVNcxLLMvsv4a_RZMRpA.gif" /></figure><p>Now, let’s get to the result, by blowing through most of the action faster, but using strong cushioning (easing) for a nice recovery.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/404/1*4PXuGaudVntmH17SI4oAHA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*4K1DiNqoq_HjJReI95Nd8A.gif" /><figcaption>Smeared</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/601/1*wT3Y2n0k2SXWEvrhycy0Cw.png" /><figcaption>Sculpting a curve</figcaption></figure><p>What if we push it further? Let’s <em>sculpt</em> the curve some more. Ease in and out. Strong acceleration, spending more frames settling. If the action is too fast, we can lead the eye with an elongated <a href="http://animationsmears.tumblr.com/">“smear” frame</a>. Perhaps a little bit of overshoot to sand it down a little bit.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*Z3f-lbc1lfdfYMAqrF3AgQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*B7tADN8Lp4qgiqqRnvIGiw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*z3cOLscDOhGim_n1TiH59w.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*2j6Ris28P4r7gezDtNuQBw.jpeg" /><figcaption>Impossible Smear Frames carry the eye across fast movement. <a href="http://johnkstuff.blogspot.com/2009/07/smears-and-poses.html">Via John Kricfalusi</a></figcaption></figure><h3>Seeing time with graphs</h3><p>Seasoned animators perceive time with nuance. The eye needs to be trained to see &amp; feel timing. Though this ability can take years to develop, it’s still possible to dissect timing, thanks to computers. THANKS COMPUTERS!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/553/1*1DxuQ2_bO_5lvBxL2pNHzQ.png" /><figcaption><a href="http://www.navone.org/HTML/Tutorial_Splines2_2.htm">http://www.navone.org/HTML/Tutorial_Splines2_2.htm</a></figcaption></figure><p>Interpolated Computer Animation often employs the concept of a Graph Editor, to let you sculpt time. While the rats nest of curves can be intimidating initially, it’s simple at its core. Graphs merely describe a value changing over time. The value, is attached to attributes (e.g. scale, position, rotation, color, bendy-ness, shininess, roughness).</p><h3>Motionscope</h3><p>When we manipulate the shape of these graphs, we’re designing time. Using <a href="http://thinko.com/motionscope"><strong>MotionScope</strong></a> (our in-house tool at <a href="http://thinko.com">Thinko</a>), let’s take a look at how timing &amp; spacing correlates to graphs. It’s like a console for an engineer, or a histogram for a photographer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*7UGoO5VhrnaIA774EfsO0g.gif" /><figcaption>Stepped / Blocked <a href="https://framer.cloud/aAdpl/">https://framer.cloud/aAdpl/</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*SZI5ZkTRVh5iQL5ehvHINQ.gif" /><figcaption>Ease In <a href="https://framer.cloud/vKGrR">https://framer.cloud/vKGrR</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*9kb2f87dmCwkB566lhCD8A.gif" /><figcaption>Ease In &amp; Out <a href="https://framer.cloud/tfOhN">https://framer.cloud/tfOhN</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*FE2yByGnD33X06zPuq2yCA.gif" /><figcaption>Spring Simulated <a href="https://framer.cloud/deNRR">https://framer.cloud/deNRR</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*xbmtaaJzjttokP9cxHfaUQ.gif" /><figcaption>Circular motion can be described with sin &amp; cosine functions per dimension <a href="https://framer.cloud/cTAKX">https://framer.cloud/cTAKX</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*VoWE0jpZ9oVlqic-BA6nqA.gif" /><figcaption>Custom <a href="http://cubic-bezier.com/#.25,.01,.14,1.01">Cubic Bezier </a>Curve <a href="https://framer.cloud/lWHuB">https://framer.cloud/lWHuB</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*Zgo5LFo8i-8ROPSAhJQ6jQ.gif" /><figcaption>Multiple, Layered Dimensions <a href="https://framer.cloud/jBPYO">https://framer.cloud/jBPYO</a></figcaption></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F101885482%3Fapp_id%3D122963&amp;dntp=1&amp;url=https%3A%2F%2Fvimeo.com%2F101885482&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F483763948_640.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="640" height="428" frameborder="0" scrolling="no"><a href="https://medium.com/media/e44e4ae4d080d0ce26c1fd2739ab1b9e/href">https://medium.com/media/e44e4ae4d080d0ce26c1fd2739ab1b9e/href</a></iframe><p>A benefit of using a scope is the ability to observe motion in raw dimensions. We can debug animation issues by focusing on one “layer” of animation at a time.</p><h3><strong>A RESOURCE DUMP!!!</strong></h3><p>There’s a mountain to learn, but luckily other animators have written boatloads of great information. Here are some valuable concepts to reference:</p><p><strong>Moving holds:</strong></p><p>A method for selling weight, and keeping forms alive <a href="http://www.keithlango.com/tutorials/march05/movingHold.htm">http://www.keithlango.com/tutorials/march05/movingHold.htm</a></p><p><strong>Antics:</strong></p><p>A contrasting wind up before a primary movement.</p><p><a href="http://johnkstuff.blogspot.com/2009/02/anticipations.html">Disney Principles 7 - Anticipations</a></p><p><strong>Implementing Anticipation &amp; Overshoots:</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FSHflOdP_f08%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DSHflOdP_f08&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FSHflOdP_f08%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/546b48b5da82ce14fdd5c46a393d3823/href">https://medium.com/media/546b48b5da82ce14fdd5c46a393d3823/href</a></iframe><p><strong>Arcs:</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F8dTAoZmxJT8%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8dTAoZmxJT8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F8dTAoZmxJT8%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/7edb317b311944aa45ec218e1778bf0c/href">https://medium.com/media/7edb317b311944aa45ec218e1778bf0c/href</a></iframe><p><a href="http://blog.animationmentor.com/arc-the-12-basic-principles-of-animation/">Arc: The 12 Basic Principles of Animation</a></p><p><strong>Spline Hygiene:</strong></p><p>Pixar’s Victor Navone talks about untangling Function Curves.</p><p><a href="http://www.navone.org/HTML/Tutorial_Splines2.htm">Tutorial: Splinophilia Part 2</a></p><p><strong>Transitional &amp; Spatial Interfaces:</strong></p><p>I wrote these!</p><ul><li><a href="https://medium.com/@pasql/transitional-interfaces-926eb80d64e3">Transitional Interfaces</a></li><li><a href="https://medium.com/elepath-exports/spatial-interfaces-886bccc5d1e9">Spatial Interfaces</a></li></ul><p><strong>The Art of Interpolation:</strong></p><p>GREAT talk by my friend <a href="https://twitter.com/marcus_eckert?lang=en">Marcus Eckert</a>.</p><p><a href="http://push-conference.com/news/getting-from-a-to-b-the-art-of-interpolation-by-marcus-eckert/">http://push-conference.com/news/getting-from-a-to-b-the-art-of-interpolation-by-marcus-eckert/</a></p><p><strong>Game Feel:</strong></p><p>Some ideas to help consider tactile <em>feeling</em>.</p><p><a href="https://amzn.to/2rno2bV">https://amzn.to/2rno2bV</a></p><p><strong>The Animator’s Survival Kit:</strong></p><p>This is the Bible for animators. A must have.</p><p><a href="https://amzn.to/2w8NrM0">https://amzn.to/2w8NrM0</a></p><p><strong>How to Lerp like a pro:</strong></p><p>Implementing interpolation</p><p><a href="https://chicounity3d.wordpress.com/2014/05/23/how-to-lerp-like-a-pro/">https://chicounity3d.wordpress.com/2014/05/23/how-to-lerp-like-a-pro/</a></p><h3>Practice</h3><p>Reading theory is one thing, but implementing these ideas is a different game. It‘s helpful to sketch around with <em>and </em>without code.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FjdyscXcrUzE%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjdyscXcrUzE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FjdyscXcrUzE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/fc6c6c6a5c32370e06ec5273e5674979/href">https://medium.com/media/fc6c6c6a5c32370e06ec5273e5674979/href</a></iframe><p>To experiment without code — Practice manual animation to get a sense of timing. Animate a ball across the screen without using computer in-betweens. Draw every in-between frame yourself. It’s not hard. Just get a brush tool, make it the size of a ball, and experiment with timing and spacing! Once you learn to <em>feel </em>timing, your work will improve drastically.</p><p>Anyhoo, that’s it for now.</p><h3>Questions?</h3><p><a href="mailto:pasquale@thinko.com">pasquale@thinko.com</a> / <a href="http://twitter.com/pasql">@pasql on twitter</a></p><p>Thanks for reading &amp; watching ✨</p><p><em>Special thanks to </em><a href="https://medium.com/u/f25d299d34ce"><em>Jacob Bijani</em></a><em> for technical contributions.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7d818ddcd40a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Spatial Interfaces]]></title>
            <link>https://medium.com/elepath-exports/spatial-interfaces-886bccc5d1e9?source=rss-a1f92dff5d8d------2</link>
            <guid isPermaLink="false">https://medium.com/p/886bccc5d1e9</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[interfaces]]></category>
            <dc:creator><![CDATA[Pasquale D’Silva]]></dc:creator>
            <pubDate>Tue, 28 Jul 2015 15:35:26 GMT</pubDate>
            <atom:updated>2024-02-08T06:52:01.875Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qDtUYLktqEBgOgINGaClAQ.png" /></figure><p><strong>I think spatially, and so do you.</strong> Can you scratch your left ear without looking? Pick a booger out of your nose, without poking your brain? Remember where you left your keys? Can you type, without looking at your keyboard? Know which pocket your phone is in? Which way is up? Do you know where the bathroom is? Of course you do! We imagine multi-dimensional models in our minds, to help understand the complex world around us. We can also leverage this powerful way of thinking, to process more abstract information.</p><p>The best software is an extension of the brain. It lets us think naturally, and conforms to us, not the other way around. Translation of information is the computer’s job, not ours. A <em>great Spatial Interface</em> meets our expectations of a physical model. They are Interfaces that are sensible about where things lay. Like a well designed building, they’re easy to traverse through. One space flows into the other, without surprise.</p><h3>Modeling Space</h3><p>To design a Spatial Interface, you need to think inside <em>and</em> outside the bounds of the screen. Think about the physicality of the objects in your interface. Where did they come from? Where will they go? How do they behave in respect to Kinetic influence? Do certain objects inherit physical properties of others? Where are you, relative to everything else?</p><p>These are hard questions to answer with words. Seems like a no-brainer, but I find it most effective to solve visual problems with pictures.</p><h4>Drawing the map</h4><p><em>Diagrammatic Reasoning</em></p><p>When designing spatially, it helps to imagine an interface as a physical model, which can be manipulated, and travelled through. Rather than placing detached comps next to each other one-dimensionally, try thinking upper-dimensionally.</p><p>Here’s a breakdown of the <em>Contextual Zooming</em> paradigm that was key to creating <a href="http://keezy.co/drummer">Keezy Drummer</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qlC0NuGcDQHJzW8oWCWoaA.png" /><figcaption>A simple map, describing the relationships between Interface contexts in Keezy Drummer. This does not indicate the bounds of a screen. The arrows represent the temporal dimension (time!)</figcaption></figure><h4><strong>The 4th Dimension?</strong></h4><p>You can visualize the relationships between dimensions as extrusions of lower dimensions. Each dimension creates a significantly more complex model to visualize.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*AeVx_9aotjtPqneSpyw4zA.png" /><figcaption>As you can see, representing the 4th dimension in a 2 dimensional form gets hairy, real quick. “W” in this figure, represents time.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/264/1*2uLPW4Z8l-GM6MEhtxq9Xg.gif" /><figcaption>A Transitional Interface, demonstrating Contextual Zooming in Keezy Drummer</figcaption></figure><p>We can design with time, by thinking about kinetic, <a href="https://medium.com/@pasql/transitional-interfaces-926eb80d64e3"><strong>Transitional Interfaces</strong></a>. Both Spatial &amp; Temporal clues lead the eye around physical models.</p><h4>Manipulating a list</h4><p>Motion implies space. Movement re-enforces the physical characteristics of the spaces on and off the screen. Objects constrained using sensible, physical rules, help establish a clear model.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*pKEeOcwV5eUbFPKFroK4rw.gif" /></figure><p>We’ve all seen this classic, list item deletion pattern. Swipe the cell, and it reveals a button behind it. Tap the icon, and the entire cell collapses.</p><p><em>What happens if we change the way the list item departs the screen?</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*uv5j9suJs3o9y2zOou0cKQ.gif" /></figure><p>If we cushion / ease the item exiting the screen, we suggest where it might stop. In this case, it stops a little short off screen. We might want to do this to imply a holding area, which could feed items back into the list. Maybe we could allow the user to swipe the viewport to the right hand side of the screen, revealing displaced list items.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*SOtVLq5qi4Eo-YBtAuRAWQ.gif" /><figcaption>Google’s Material Design guidelines seems to think that you should only accelerate when leaving the screen. I beg to differ.</figcaption></figure><p>If the item keeps accelerating, where does it end up? Out of reach? Are we banishing it into the void of outer space?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*_xSzgPNqXCGHZLtL_rRCrw.gif" /></figure><p>If the list item rotates and displaces along the x &amp; y axis freely, does it come to rest off the grid? Is there gravity? Maybe it lands in a pile.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*poDhiNig-3KKVC_9k_XqhA.gif" /></figure><p>Z-translation implies depth.</p><p>The list item could flip over. It might fold in on itself like an accordion. Maybe it scrunches. The fill color could drain out of the cell like a liquid. I could go on with visual examples forever, but by now, I think you get the picture; one can encode quite a lot of meaning using motion and space.</p><h3>Interfaces with tactful Spatial Design</h3><h4>Scorekeeper</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FsXqXpwyBI1k%3Ffeature%3Doembed&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DsXqXpwyBI1k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FsXqXpwyBI1k%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b460788c46915d07204de6d01f66dbd6/href">https://medium.com/media/b460788c46915d07204de6d01f66dbd6/href</a></iframe><p>Pretty conceptual, but Scorekeeper does a great job of creating focus. It isolates modes, rather than presenting the user with a bloated buffet of options to dig through. Complexity is hidden in secondary, and tertiary sub-interfaces. Each sub-interface is as simple as its parent.</p><h4>Tinder</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/286/1*8nkScAezFFVuLe37CyvbaQ.gif" /></figure><p>Tinder famously employs a card paradigm. There’s an endless stack of cards which make use of z-depth. Toss a card from the stack to the right, for a babe you’re into, or throw them to the left to pass. Similarly, if you tap the heart or ‘x’ button, it automatically tosses the card to the respective side of screen, re-enforcing the function of space.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*ywxkm6t_qgluzTfg3FzEfw.gif" /></figure><p>It’s a physical, kinetic model that’s familiar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/280/1*8b3vEAhHsP5rngzqLP5lgg.gif" /></figure><p>Secondary screens are placed along a horizontal continuum, which is reflected in the motion of the navigation, cascading to the content below. A great example of motion being leveraged to <em>imply space</em>.</p><p>I’m unsure if it’s intentional, but the interface for messaging your ‘matches’ happens to exist on the right hand side, within the same area you toss your Tinder crush card.</p><h4>Tumblr, iOS</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*SrvkihFL_AI9R0Z9dG_fyA.gif" /></figure><p>Tumblr’s model is simple. There’s a few contexts, connected with a tab bar. It’s easy to visualize if you imagine the interface from the perspective of a camera. A persistent toolbar follows us, as if attached to the camera we’re looking through. Though you don’t see explicit motion along the x-axis as we change contexts (as Tinder employs), there’s still a implicit <em>feeling</em> of space on either side of the columns.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V4k4Bkvuyjwrg8_6ScAWPg.png" /><figcaption>This bird’s eye view reveals an interface that’s hard to get lost in. A few tall, scrolling columns, and a few contextual overlays. We see this Tab Bar mechanism everywhere, in places like Instagram, Twitter, Foursquare, etc.</figcaption></figure><p>None of this is groundbreaking.</p><p>What’s interesting is the use of the compose modal, triggered by touching the blue pencil icon. No matter where it’s touched, you are not transported to a new part of the interface, rather — you’re <em>presented</em> with a temporary offering, in a focused view. You have incredibly simple options: Either select a post type, or dismiss the menu. The view presents itself over the top of the content, as if it were a layer existing on a z-plane. Dismiss the view, and it returns to where it was summoned. Choose to make an action on it, you continue to move along the y-axis with the icons, implying a continuum. It’s like a conveyor belt on a production line.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*MuPkwPXkeQqcuodZjLs4nQ.gif" /><figcaption>Tumblr iOS (left), &amp; my rough, proposed change to simplify spatially (right).</figcaption></figure><p>My one gripe in Tumblr’s process, is that the metadata composer is presented with the insertion of a classic, master-detail view. If I were to push the interface further, I’d continue to present the next screen with y-axis motion, rather than introducing the extra x-dimension. This reduces the cognitive load required to imagine the spatial model.</p><h4>Facebook’s Swipe to close</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/280/1*uHIoXQANeqlphuzgtHAlgg.gif" /></figure><p>A classic lightbox effect, but with a little more. Tap the photo, and it moves into the ‘foreground’. The background feed dims and recedes. Flick the photo away, and it returns back to its initial position, while the original container view zooms back into focus. It’s solid.</p><h3>Interfaces with careless Spatial Design</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/450/1*rJjoYpCfEc69BaUt4utebQ.jpeg" /></figure><p>There’s a lot to learn, by deconstructing these expensive Frankensteins.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RmXBW1vIv5DhEZxJyRjBeg.png" /></figure><h4>Spotify, what are you doing? 😲</h4><p>One of the most spatially confusing, while popular pieces of consumer software. To describe how Spotify’s interface makes use of space, would be to describe a rat’s nest of wires. I challenge you to effectively sketch it on a piece of paper.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JbHw60RdDaG6BLhbAXmZSQ.png" /><figcaption>I couldn’t come close to communicating this interface with a bird’s eye view, before getting lost.</figcaption></figure><p>A user of Spotify is exposed to obscure carousels, buried inside modals, stuffed inside list views, crammed into drawers, contained by drop-downs, tucked behind gestures. Each list item in the hamburger menu forces the user through a wild goose chase in order to perform a simple action. It’s like you have to play a <em>choose your own adventure</em> story to get anything done.</p><p><strong>Turkish Airlines in-flight entertainment</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F132487615&amp;url=https%3A%2F%2Fvimeo.com%2F132487615&amp;image=http%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F525170655_1280.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=vimeo" width="1280" height="720" frameborder="0" scrolling="no"><a href="https://medium.com/media/f559ab47b848941c5937e92af3ec2584/href">https://medium.com/media/f559ab47b848941c5937e92af3ec2584/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/512/1*rm-gi_Puq6cGOc_G50Qv2Q.jpeg" /></figure><p><strong>How do we avoid the Rat’s Nest?</strong> We need to zoom out, and quite literally. Like I mentioned earlier, it helps immensely to think in terms of diagrammatic reasoning. Simple directions on the map result in a less chaotic journey through space.</p><p><em>Some tips:</em></p><ul><li>Be careful mixing carousels, scroll areas, zooms, and hamburger menus. Each one of these devices introduces dimensional complexity.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*aYVbzBaLN2DuN0uDxE-d1g.gif" /><figcaption>Horizontal space is implied here, but it requires both views to displace themselves over an immense distance.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*XEtlyPMscmD0Z3XaqgojGA.gif" /><figcaption>Horizontal space is implied, without moving the pink view all the way across the screen. We create a feeling of movement, without dragging a viewer’s eyes all the way across the screen. This pattern is common in native iOS Master-Detail views.</figcaption></figure><ul><li>Avoid over-describing space. It becomes hard to digest. The time it takes to convey the space might block an interaction. Added time can cause software to feel unresponsive. Consider shortcuts to imply the feeling of space. Literal isn’t as important as feeling.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2vtNU1gYMgTxji1ur1Yb2w.jpeg" /><figcaption>Early sketches for Keezy Drummer</figcaption></figure><ul><li>Get drawing. Use a sketchbook, or even a whiteboard. Something more loose than pixel twerking. Think with pictures.</li></ul><p>I hope what I’ve penned down has encouraged you to think more Spatially. Go play some video games, and study the interfaces. Go outside. Observe the physicality of reality and your expectations of it.</p><p>Spatial Interfaces, as a talk:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fplayer.vimeo.com%2Fvideo%2F147643797%3Fapp_id%3D122963&amp;dntp=1&amp;display_name=Vimeo&amp;url=https%3A%2F%2Fvimeo.com%2F147643797&amp;image=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F546446387-4c46eec97ea40df9aab64e490dc33425aa8c728a353cc6e7222c9da32d420271-d_1280&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=vimeo" width="1920" height="1080" frameborder="0" scrolling="no"><a href="https://medium.com/media/8b23bf231c05314945718ec44c95fe41/href">https://medium.com/media/8b23bf231c05314945718ec44c95fe41/href</a></iframe><p>update: ~2024~</p><p>I’m building new work for the Apple Vision Pro, hit me up if you wanna chat.</p><p>Feel free to email me: pasquale@lingonberry.ai, or write to me on twitter <a href="https://twitter.com/@okpasquale">@okpasquale</a></p><p>✌🏻</p><p><em>Special thanks:</em></p><p>Jake Lodwick, Eric Skogen, Mark Stultz, &amp; Sebastiaan de With</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=886bccc5d1e9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/elepath-exports/spatial-interfaces-886bccc5d1e9">Spatial Interfaces</a> was originally published in <a href="https://medium.com/elepath-exports">Elepath Exports</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Transitional Interfaces]]></title>
            <link>https://medium.com/@pasql/transitional-interfaces-926eb80d64e3?source=rss-a1f92dff5d8d------2</link>
            <guid isPermaLink="false">https://medium.com/p/926eb80d64e3</guid>
            <category><![CDATA[software]]></category>
            <category><![CDATA[animation]]></category>
            <category><![CDATA[ux]]></category>
            <category><![CDATA[design]]></category>
            <dc:creator><![CDATA[Pasquale D’Silva]]></dc:creator>
            <pubDate>Tue, 09 Apr 2013 04:35:00 GMT</pubDate>
            <atom:updated>2017-11-02T02:17:36.956Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*ScCkVKA-o9Mz2t4Z.gif" /></figure><p><strong>Designers love to sweat the details</strong>. Much time is spent pixel-fucking buttons, form styles, setting type, &amp; getting those icons as sharp as a tack. A+, great job, don&#39;t stop you guys.</p><p>...but there&#39;s little consideration about how it all fits together outside of a static comp. You tap a button and the form just ...appears? You swipe to delete an item and it just vanishes? That’s super weird and un-natural. Nearly nothing in the real world does anything as jarringly as just swapping states. It would feel like a glitch.</p><p>Oh, ok sweet. You made some notes — <em>it just “slides in.”</em></p><p>How? Quickly? Does it bounce back? Cushion in? Static design doesn&#39;t provide context between states.</p><p>Folks keep throwing around the word “<em>delight”</em> when referring to animation and cute interactions. Cool and great for those guys. Guess what though? Animation can be used <em>functionally</em> too. It&#39;s not just an embellished detail.</p><p>Animation leverages an overlooked dimension — time! An invisible fabric which stitches space together. You don&#39;t have to be a math dork to understand this.</p><p><strong>Let&#39;s take a look at some simple ideas:</strong></p><h3>Easing/cushioning</h3><p>In traditional animation, a <em>breakdown</em> determines how a mass moves from <strong>Point A</strong> to <strong>Point B</strong>. It adds bias to motion, and determines how the rest of the frames fall into place. Take these 25 frame interpolations, where frame 13 (the middle-ish point) varies in position:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*Q7TOdd6hMjHLK_1Q.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*yfq40i7GG4MDdzzA.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*LKq1k9BrgDRRqoMR.gif" /></figure><p>Look at that! You just learned about cushioning/easing. Computers are jerks and love to fill in the gaps linearly because they are lazy sacks of wires. A great animator/motion designer spends most of their days fighting computers to make sure they don’t mess this up.</p><p>Animation is all about timing. You can play with all sorts of different spacing to get different results. But enough about that. This isn’t an animation tutorial, the point was to get you thinking about the language of timing and spacing.</p><h3><strong>Some ideas about Animation in the context of Interfaces</strong></h3><p>Like I said earlier, animation can help to provide <em>context</em>. It helps brains understand how the information flows.</p><h4><strong>Inserting an item into a list</strong></h4><p>Let’s say you’re looking at a live list of things and you’d love it to be populating with live data. If you leave it to a computer, it’d look something like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*tAlK3EOkHdLj6MDE.gif" /></figure><p>Yikes, that’s rough…</p><p>Smoothing it out only requires a few frames of animation. How about giving your brain a <em>clue </em>about what’s happening to the list?:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*g9eRRfNg3IpKZebc.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*ugnsxwIKHdkMHEe1.gif" /></figure><p>For a new item to be added, the list needs to make room for the item, and then the new item (which came from <em>somewhere</em>) fills in the space. <em>Much</em> less jarring. There’s easing in &amp; out of states to soften the change. It feels more natural, because we have the contextual hook of space — mirroring the way you’d add something to a stack of things in real life!</p><p><strong><em>A few more:</em></strong></p><h3><strong>Drilling down into list items</strong></h3><p>There’s the typical, default pattern of sliding over into an item. A regularly used pattern, but doesn’t make a whole lot of sense spatially:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/286/0*L1E2mBLnM2M1L2nD.gif" /></figure><p>The direction of sliding doesn’t really give you any useful clues outside of a linear chain of views.</p><p>How about considering the item to be a container you prod for more detail, inline?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/242/0*BcnJucADwdqzblrf.gif" /></figure><p>If the goal is to drill in and have the list item hold full focus, we could even make everything else hide within the same view:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/392/0*k09FdcfO2JI1jcbq.gif" /></figure><p>Breadcrumbing&gt;all&gt;the&gt;way&gt;into&gt;a&gt;view is an easy way to get lost.</p><p>An advantage of remaining inline is that you can remove the need to explain how deep a user is embedded into sub-views. You can scrap the display of a hierarchical navigation, because the user <strong><em>saw</em></strong> how they got there.</p><p>Of course, the above ideas don’t work with every case — but this perspective can lead to much more elegant solutions to connect a flow.</p><h3><strong>An implemented example - Thinglist</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/264/0*IoFehxuS6xBU4HMz.gif" /></figure><p><a href="http://appstore.com/thinglist">Thinglist</a>, an <a href="http://elepath.com/">Elepath</a> product I’m working on with Mister <a href="http://kylebragger.com/">Kyle Bragger </a>has some pretty fun transitional interface work woven into it. The above example demonstrates how we reveal the new filtering feature.</p><p><strong>Examples of Transitional interfaces you should check out:</strong></p><p>You know, I can’t really name many… On one end of the scale, there are a lot of beautiful, but dreadfully static interfaces. On the other end — ones that are over embellished with gimmicky animation.</p><p>Three stand out to me right now.</p><p><a href="http://www.realmacsoftware.com/clear/">Clear</a>: Very tight gesture driven animation.</p><p><a href="https://www.getwillcall.com/">Willcall</a>: Has a consistent, kinetic rhythm. There’s no hard pops between states. A lovely playfulness.</p><p>Facebook.app: Not very consistent, but there’s some nice solutions to <em>drawing focus. </em>Specifically… drilling down into lightbox-like views for fullscreen photos, and popping comment inputs into list views.</p><p>It seems crazy to me that more people don’t think about interfaces with respect to the dimension of time. Motion can provide so much information! Maybe the tools to create prototypes are too complicated for most designers?</p><p>I originally wrote this as an internal document for <a href="http://elepath.com/">Elepath</a> employees, to begin to explain my obsession with motion. I am an <a href="http://psql.carbonmade.com/">Animator </a>after all.</p><p>We figured it would be cool to share this for discussion. I’d love to hear thoughts from other people building interfaces, with a real consideration for how &amp; why they move.</p><p><em>Do leave your comments here, or pipe up &amp; chat to me on twitter: </em><a href="http://twitter.com/pasql"><em>@pasql</em></a></p><h3><strong>If you’d like help with your next project, shoot me an email:</strong></h3><p><em>pasquale@thinko.com</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/879/1*DyPeH4O7HGGDrNGkSLIw0Q.png" /></figure><p>Update: <a href="http://www.youtube.com/watch?v=TMe0WnkF1Lc&amp;feature=c4-overview&amp;list=UURx1y52pfeMwbuer9Vh2u-A">I expanded on this article as a 50 minute talk, which you can watch here -&gt;</a></p><p>*<em>I take no responsibility for you plunging down the rabbit hole and getting hooked on animation.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=926eb80d64e3" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>