One Month of Google Pixel

The Pixel phone, by Google

When my Nexus 5X was rendered unusable by my negligence at the swimming pool, I needed to order a replacement phone. Since I want to stay on the Google Fi service, my device options were limited. Fortunately, I had been interested in the Google Pixel as soon as it was released and thought I’d wait for its price to drop or until I couldn’t wait any longer. With the death of the Nexus 5X, the latter scenario has come to pass. (And as of this writing, the Pixel prices just dropped as well.)

Some remarks from my first month living with a Google Pixel:

Camera: One of the much-touted features upon the launch of the Pixel was its camera. And it is indeed quite excellent! A huge step forward relative to every cell phone I’ve owned… except for its immediate predecessor. In my usage, the Pixel camera was only a minor improvement from the already-excellent camera of the Nexus 5X.

Exterior: Another touted feature is the aluminum body that tries very hard not to be a direct copy of an iPhone. This does not suit my personal taste: I prefer my phone bodies to be plastic which has more give than metal. Every phone I’ve owned to date are plastic-bodied and their corners all show the times when they’ve been dropped, bounced back, and only left with a tiny mark. Aluminum does not flex like that. If I should drop this phone, the aluminum will bend and stay bent instead of bouncing back. So this aluminum body phone became my first phone with a protective case. What’s the point of fancy aluminum if I have to wrap it in plastic anyway?

Pixel Launcher: The Pixel OS is mostly stock Android with a few changes. The Pixel Launcher is the most visible since that’s what the user sees all the time. I appreciate most of the changes but I didn’t care for the weather taking up the top row of the home screen and displacing 5 icon positions. Knowing the weather is nice, but it’s not worth giving up an entire row of 5 icons I could have placed there.

Performance: On paper the Pixel should vastly outperform the 5X. In my daily usage the difference is noticeable but not earth-shattering. Another incremental improvement.

Daydream VR: The performance advances are more significant when running Google’s new mobile VR effort, Daydream. It is much superior to Google Cardboard from the first moment I put on the headset and grabbed the remote. But it also comes at significantly higher cost. Is the cost worth it? Not at the moment – the Daydream app ecosystem is still thin, but I’m optimistically looking forward to more.

Storage: I had the 16GB edition of Nexus 5X, and over its lifetime it received two major Android releases, each larger than the last. Towards the end it was quite a struggle to stay within 16GB. The smallest Google Pixel starts at 32GB, in my view a tacit admission of Android’s weight gain.

Summary: If I knew a month ago what I know now, I would have ordered a refurbished 32GB Nexus 5X instead of a new Google Pixel.

SIGGRAPH 2017 Exhibit Floor

And finally, a few words about the exhibit floor of SIGGRAPH 2017. After all, it is primarily what my exhibits-only pass is intended for. My first stop was a quick glance over the paper posters. It is interesting to see where researchers are focused today. Some of them are solving problems I didn’t even know were problems.

There were the mega-booths expected of a tech trade show, by the usual suspects. Intel, AMD, and NVIDIA were all present to proclaim each of them are the best for graphics. This year AMD has a pretty compelling story with their Ryzen CPUs and Vega GPUs and I wish the best for the underdog.

There were also many large booths offering VR experiences. Not the small consumer grade VR experiences like the Oculus Rift and HTC Vive with two or three tracking devices. These are huge setups with tens of cameras offering freedom of movement over hundreds of square feet. I was impressed at all the technology and investment going into VR until I got a little smarter: They are actually motion capture companies that have configured their demonstration booths to show VR experiences because that’s what’s hot this year for getting people’s attention. Most of their revenue come from doing things other than virtual reality.

For trade show exhibits that are presumably trying to attract customers, some of these vendors are surprisingly cagey about the technology. Things that I thought were innocent beginner’s questions were met with “I’m sorry we can’t discuss that.” The friendliest representative I encountered was at the Motion Analysis booth.


He explained the booth – which had a line of people waiting to try the zombie apocalypse shooter VR experience on display – is a cooperation between his motion-capture company and one of their customers who operates VR arcades with the zombie shooter experience. The motion tracker system’s control computer was nearby and he walked me through the basics of how these systems track motion by correlating  the imagery across their many cameras. I learned that the price tag for a system like that used by the zombie VR arcade have six to seven digits after the dollar sign, which means I’m definitely not getting one in my home anytime soon.

I did not expect to see 3D printer companies on the exhibit floor. Makerbot, Formlabs, and several other names I didn’t know were present. I enjoyed getting a close look at all the finely detailed prints they can produce, I did not enjoy their associated price tags.

That is to be expected. It doesn’t matter if we’re talking about computer equipment, VR systems, motion capture, or 3D printer. This is an industry trade show displaying professional-level equipment that can stand up to commercial use. Not the hobbyist-level equipment that I’m more familiar with.

It was fun to see them up close and personal on the SIGGRAPH exhibit floor.

SIGGRAPH 2017 Exhibitor Sessions

An exhibits-only pass holder like myself is barred from most of the interesting presentations and talks. However, we are thrown a bone in the form of the SIGGRAPH Exhibitor Sessions. I had expected these to be glorified sales pitches for the companies that exhibit at the convention, but they exceeded my expectations and turned out to be informative, educational, entertaining, and often combinations thereof.

OpenSubdivPixar had a few sessions centering around their open-source efforts. I realized I might have been out of my depth when the OpenSubdiv talk dove straight into adoption success and future road map of the product. They didn’t bother explaining what it was to ignorant people like myself – I guess if I didn’t know, I didn’t belong at that session.

Several software vendors offered sessions for their customers to talk about their work. Such sessions accomplish multiple objectives at once: The software product is seen in action as a production tool, the customer of the product advertise their service, and we learn a little of the nuts-and-bolts behind the scenes. I attended one such talk that broke down some of the work behind the animated household items of Beauty and the Beast (2017), and a different session (by a different vendor) talked about Rocket and Baby Groot in Guardians of the Galaxy Vol. 2.

Much of the technical details went over my head. I wish I was a little more conversant on these topics, but I did catch a few things here and there and jotted down a few items to look up when I got home. One example was the Alembic interchange format used by these effects houses to collaborate on a film. Since each shop has different software tools and different ways of working with them, an open data interchange format like Alembic is essential for the ecosystem to function.

SIGGRAPH 2017 Computer Animation Festival

“LOU” by Pixar Animation Studios

A highlight for many SIGGRAPH attendees is the computer animation festival. I was very happy to discover tickets for the show is a separate purchase from the very expensive conference ticket, which I can’t justify buying. As far as movie tickets go, $40 is pretty darn pricey. But it is SIGGRAPH, it is special, so out comes the credit card.

One disappointment of the festival is the VR theater. All advertising for the computer animation festival talked about the VR theater. Virtual reality is a new media and many filmmakers are exploring ways to tell a visual story with it. With all the promotion of the VR theater – including a pitch by a speaker at the screen event itself – it was a rude surprise to discover the VR theater was only open to conference attendees. My animation festival ticket did not permit entry.

This felt like bait-and-switch and left quite the bitter taste in my mouth.

But back to happier things, the non-VR animation shorts that made an impression on me. About half of them are short films that tell their own little story. There were several visual effect break-down reels of recent films, showing how the various effect shots were made. I enjoyed seeing the before/after footage cutting in between.

The Jury’s Choice short, Buster the Boxer, is unique by presenting both: the short film (which is also an advertisement) followed by a VFX breakdown of what we just watched. I loved seeing both back to back.

A few clips were just compilations of completed shots – effectively bits of the film with no breakdown information. I found those uninformative and just disappointing.

I was fond of the short Scrambled for two reasons: (1) non photo-realistic shading resembling hand drawn animation, and (2) animation for the Rubik’s Cube character. The animators managed to convey emotion and personality purely by arranging the 26 little cubes that make up a Rubik’s Cube.

Analogue Loaders offered an unexpected perspective: it re-imagines many various “please wait” animations we see on computers. Turning them into physical world (“analogue”) representations, and of course it is itself a computer animation done in the digital world. A little bit of animation Inception.

The Best in Show short, Song of a Toad, has been filed away in the “I don’t get it” section.

The festival, which can trace its roots to the Luxo Jr. short by an infant Pixar, wrapped up with the latest Pixar short: LOU. It lived up to the legacy and expectations of a Pixar production, and was a very entertaining way to wrap up the evening.

SIGGRAPH 2017 Los Angeles


I had been fascinated by computer graphics for almost as long as I’ve been interested in computers. My earliest memory of computer graphics was at the California Museum of Science and Industry, predecessor to the current day California Science Center. In association with the 1986 World’s Fair (Expo ’86) in Vancouver, British Columbia, the museum held an exhibit on computer graphics. Part of the exhibit was a computer lab where museum attendees can watch an artist work on a computer. Next to the lab was a TV screen running a video loop.

My attention was captured by the video loop. It included the landmark animation short Luxo Jr. There were many other technical displays of computer graphics in the video loop, but the little hopping lamp is the one that made me sit on the bench and wait for the loop to repeat.

Since this was before the age of Google and Wikipedia, it took me some time to learn that Luxo. Jr. was first presented at a computer graphics industry conference. At the time it was officially just a demonstration of the algorithm described in a paper presented at SIGGRAPH 1986. But history showed it was far more than a simple demo.

Once I knew about SIGGRAPH I knew it would be interesting. However, the conference is not cheap, even before considering the airfare and hotels. Most of the attendees are there for business: they work in a career where their employer would foot the bill. I did not work at such a job so SIGGRAPH remained out of reach.

Until this year.

SIGGRAPH 2017 is in the Los Angeles Convention Center, roughly a 40 minute commute away. Since I didn’t have to invest in airfare or hotel expenses, it made sense to get a taste with a cheap exhibits-only pass.



Play Atari 2600 Games for Science

glogoGames offer a predictable controlled environment to develop and test artificial intelligence algorithms. Tic-tac-toe is usually the first adversarial game people learned when young, and so is ideal for a class teaching the basics of writing game playing algorithms. Advanced algorithms tackle playing timeless games like Chess and Go.

While those games are extremely challenging, they fail to represent many of the tasks that are interesting to pursue in artificial intelligence research. For some of these research areas, researchers turn to video games.

I’ve seen research results presented for playing various classic Atari 2600 arcade games. One example was when Google’s DeepMind research algorithm played Breakout in a super efficient and very non-human way by hitting the bricks from behind the wall.

What I hadn’t realized until today was that there’s a whole infrastructure built up for this type of research. Anybody who wishes to dip their toes in this field (or dive in head first) would not have to recreate everything from scratch.

This infrastructure for putting AI at the controls of an Atari 2600 is available via the Arcade Learning Environment, based on a game emulator and making all the inputs and outputs available in a program-friendly (instead of human-friendly) manner. I learned of this while reading about Maluuba’s announcement of their Hybrid-Reward Architecture. They applied their system to an algorithm that learned how to get the maximum score in Ms. Pac-Man.

And if getting ALE from Github is still too much work to set up, people can go to places like the OpenAI gym which has built entire algorithm training environments. All it takes is a working knowledge of Python to access everything that is available.

I’m impressed how barriers to entry have been removed for anybody interested in getting into this field of AI research. The only hard parts left are… well, the actual hard parts of algorithm design.


Portable External Monitor v3 + Raspberry Pi

The work for portable external monitor (version 3) is winding down and now it’s time for it to get to work. First up: help configure a Raspberry Pi to run the ARM port for ROS Kinetic.


This is the culmination of several different projects documented on this blog. Most obvious is the portable external monitor project. Which incorporated LED light design from the edge light investigation project. The 12 volt power from the LCD panel driver board is tapped to power the Raspberry Pi, stepped down to 5 volts by the MP1584 voltage step-down converter recently purchased on Amazon. The Raspberry Pi is housed in the 3D-printed enclosure that was one of my first projects in Onshape.

And on the software side, I’m just getting started on learning the Robot Operating System. This specific configuration will help me learn how to set up and run a ROS network across multiple nodes, one being my desktop PC and the other this Raspberry Pi.

Many projects, combined to become whole new projects!

Portable External Monitor v3 LEDs

Before we wrap up version 3 of the Portable External Monitor project, we’ll add a purely aesthetic finishing flair: some gratuitous LEDs! This is the first opportunity to apply what I’ve learned from the LED edge lighting experiments conducted a few weeks ago.

When I first received and examined the LCD panel driver board from the Amazon vendor, I noticed that a few connectors were unused. One of them caught my attention: it appears to be a way to share the 12 volt power source without the need to perform any soldering work on the circuit board.


A little Google search determined the connectors on the other side of the circuit board to be 4-pin JST PH-type connectors. So back to Amazon I go to obtain the connectors for this LED project.

The slots for the LEDs were cut into the spine for the PEMv3 core. It was easy to place the LEDs in those slots and wired them up to the JST PH connector in series with appropriate current limiting resistors.


When turned on and running, PEMv3 was already pretty brightly lit: the fluorescent back light for the panel emits light in many other directions. It is visible from multiple locations on the side, and also visible across most of the back side. Adding these LEDs (green, to match the 6mm acrylic used in the enclosure) is fairly redundant but succeeded in making everything even brighter.

Maybe I’ll find the brightness annoying in due time. But for now, version 3 of the Portable External Monitor shines bright. May it shine for a long and happy time.

Or until I decide to build version 4. Whichever comes first.


Portable External Monitor v3 Enclosure

Once we have a compact core built for the portable external monitor project, it becomes relatively easy to design and build an enclosure around it. Mostly an acrylic box that functions as a sleeve into which the core can fit, but also some additional components so we can have an integrated stand.

Once the individual parts are cemented together, a quick test to verify the parts fit.



Then we install the core.



Two problems were immediately apparent.

First problem: movement along the threaded rods were not constrained. In the ideal CAD world, the parts only hinged about a single axis. In the real world, they slide all over the place because I forgot to design in anything to prevent that movement.


Second problem: The threaded rod at the top did not function as designed. Not only did it fail to clip in to the top and hold things closed as I had hoped, it also blocked access to the ports in the open position.


To constrain movement along the threaded rods, I added a few 3D-printed parts to the base. I also replaced the upper rods of the stand with 3D printed parts for better alignment with the adjacent rail and eliminate the need for the threaded rod that ended up blocking the port. It still doesn’t clip to the rail and hold everything closed like I hoped, but it is a big step forward in functionality.


Once that is all done, the portable external monitor became far more portable. While maximum thickness stayed about the same, most of version 3 was thinner with only the main circuit board area reaching that maximum thickness. In contrast, all of version 2 were of the same maximum thickness. We shrunk along the remaining physical dimensions: the height shrunk by 1cm, and the width shrunk by a dramatic 6cm.


All of the above combined to allow PEMv3 to fit in my JanSport backpack. And carrying it will be far less of a chore now due to its significantly lighter weight. The fully equipped PEMv3 enclosure is now roughly half the weight at 4 lb. It is in fact lighter than even just the acrylic portions of PEMv2, which weighs in at 5 lb empty of electronics.

All those advances, and we have an integrate stand as well! Version 3 should be a far more usable unit than version 2 was.

Portable External Monitor v3 Screen and Components Core

Now that the unused bracket has been cut out of the way, it’s time to pack components into that newly freed space. Due to the CFL backlight power wire, there’s not a lot of room for creativity to place the CFL voltage converter board. It ends up approximately at the same place as the old dead CFL driver board where the bracket used to be. That left enough room on either side of the driver board: the buttons circuit board on the left, and the IR receiver on the right.

One unfortunate aspect of these aftermarket circuit boards is that they’re designed towards ease of construction, allowing easy mixing-and-matching components. Large components, especially the cable connectors, make it easy to snap things together. But the large connectors work against us when we’re trying to pack everything tightly. There’s a good reason they don’t use these types of parts when building thin and light laptops!

This hampers our effort packaging the buttons board and the IR receiver board. Everything is on one side of the circuit board for ease of construction, working against a compact layout. For example, we want the user-facing bits (buttons and IR receiver) on one side of the circuit board, and the cables on the back side for connection, but that’s not how they were built.

Building something out of laser-cut pieces means the Z axis is constrained by the thickness of the acrylic stock available. That plus the inconveniently placed cables and connectors made the whole exercise a challenging game of 3D jigsaw puzzle. Here’s my solution for Portable External Monitor, version 3:


While the components aren’t all on a single sheet of acrylic, we got close enough that it’s actually a pretty tightly integrated unit. Now this core unit, consisting of the screen plus supporting circuit boards, needs an enclosure around them.