A guide to using FFmpeg to create all the animated content you want.

Whether it’s for a website, a presentation, or sharing a fun clip with a friend on chat, you might want to convert a video to an animated GIF or animated WebP. Unfortunately, the visual tools for doing this vary by your operating system. Additionally, most conversion tools don’t support the WebP format, even in 2021. WebP is based on VP8, a relatively recent video codec standard compared to the GIF image format.

So, this guide is for those who are willing to learn a bit of terminal…


Photography has been a passion of mine for many years and I’ve begun dabbling in video over the last 18 months as well. Thus, it’s likely no surprise that one of my first reactions when starting to regularly work from home was “how can I use my existing gear for video conferencing?”

I am, by far, not the first person to do this, but I also approached it with a specific goal: I wanted any new camera gear or knowledge to be useful for more than video conferencing. …


Tuning a single query can dramatically improve performance options

An important aspect of a smart city kiosk is the idea that data and functionality are ready and waiting for a user at all times. As I mentioned in a previous post, Improving perceived interface responsiveness on public kiosks, the responsiveness of our kiosks is compared to analog signage, paper printouts, and folding pamphlets.

Beyond some of the previous areas of focus, such as advanced caching and optimal rendering, we also load a significant amount of data ahead of time, often on an interval basis. …


Bringing digital experiences to physical spaces requires a sense of immediacy

Sense of immediacy

One of the most compelling aspects of a kiosk experience is a sense of immediacy: that your interactions with the screen will immediately cause something to happen without perceptible delay. In many ways, this is due to the fact that we are filling a void previously occupied by analog signage, paper printouts, and folding pamphlets.

What do these have in common? Well, they don’t have a loading time. They’re physically present, waiting for a passerby to point to, pick up, or peruse.

This leads to a peculiar problem: how…


There’s a lot of magic to a simple number on a screen

Picture an average commute on public transit. You walk out of your front door and down the street. Maybe you’re running a bit late, so the walk is closer to a speedwalk, with your shins getting tired as you try to walk-but-not-run faster than your legs are willing.

You get to the entrance to the subway station and get frustrated at the person walking slowly down the steps. You nearly fall as you dodge by, run up to the turnstile, swipe your payment, and step onto the platform.


Or, getting in touch with the input pipeline 👈

This post is somewhat of a spiritual successor to a prior post, Web App Multi-touch is Complicated. We learned a lot from that experience, but as it turns out, we also had plenty more to learn!

In the middle of March 2019, we went live with the interactive software powering several dozen touchscreen kiosks in the new Shops & Restaurants at Hudson Yards in New York City. After tens of thousands of interactions, we noticed intermittent issues where touch would simply stop working on the kiosks. …


There are pixels and then there are CSS pixels

As many web developers know, perfectly formulating your cascading style sheets (CSS) is one of the most difficult parts of summoning a web app into existence. A pixel here, a margin there; gaining that perfect one-to-one match with the Photoshop/Sketch/Axure mock-ups is the right of passage for any front-end engineer.

In fact, it’s almost as if the early economists gained a brief glimpse into the future of what were then artisans and craftsfolk and, out of sudden fear of what they saw, documented the concept of “diminishing returns” specifically to ward…


Tl;dr building a non-zoomable web app for kiosks is hard

Touch interaction is fundamental to the kiosk experiences we build in transit. Interaction patterns of the past, such as buttons and knobs, have all but given way to touchscreens. It makes sense, as engineers can create almost infinitely varied experiences without inventing new human-interface devices to match those experiences.

That said, we ran into a pretty interesting issue as we were building our latest kiosk experience. As you might recall from my post, Building Smart City Kiosks with Web App Practices, we built a web app, which is then loaded…


Making cities smarter requires smart engineering habits 🏗️

Building human-centered digital experiences is always a challenge. That challenge increases dramatically when trying to bridge the divide between the built environment, physical product, and digital experience. That’s one of the tasks our engineering team is aiming to achieve at Intersection.

A Chicago CTA Interactive Kiosk

After recently launching our interactive kiosks, otherwise known as IxNTouch kiosks, with the Chicago Transit Authority, it seems like the perfect time to discuss the tech stack we used to get there. …


A quick recap of Transit Techies NYC #6: Six-Car Train, a meetup held on Wednesday, January 30, 2019

Tyler Green kicking off the meetup

Tyler Green kicked off the session with a few housekeeping notes. As usual, we started off with a gag!

Kohzy Koh lamented about the lackluster check-in process, but we’re not sure whether the “front desk shutdown” was going to occur. L-train burn! 🔥😆

They also mentioned the website is now up for Transit Techies NYC! You can check it out here: https://transittechies.nyc

Matt Joseph

Engineer, photographer, innovator, explorer, reader. EM @google. Previously at @intersection_co and @bnymellon

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store