This post proposes a framework for thinking about AI and its impact on the creative industry.
I work at Adobe, but these views are my own.
Over the past three years, the conversation around AI in the creative community has centered almost entirely on generative AI (specifically image and video generation). For many creators, generative AI feels threatening because it appears to automate…
Adobe has been doing a lot of work over the past year and a half, integrating generative AI functionality inside their tools, with things like Generative Fill in Photoshop, Generative Remove in Lightroom and Generative Extend in Premiere Pro. However, the world of AI is much larger than just Generative AI and video/image generation. Specifically, agentic AI and more general-purpose AI with MCP…
One of the advantages of working on the community team at Adobe is I get to help solve real world problems for super creative people (inside and outside Adobe). Chatting with my team this week, we had a discussion about how big of a hassle it is managing and searching screenshots. I thought this might be a fun project to tackle over the weekend.
My first thought was to just throw the image and…
As I expect most people in the tech industry have been doing, I’ve been spending a lot of time lately thinking about AI and its impact. As I work with the community for Adobe, I’ve specifically been thinking about how it will affect the creative industry, and its implications for Adobe and Adobe’s creative tools.
Adobe makes industry leading creative tools such as Photoshop, Illustrator…
Since I was in college, I have been an avid reader of The Economist. I read (and listen) to it cover to cover every week, and essentially have a set schedule for it through the week to ensure I get through it, and keep time for additional reading.
However, over the past couple of years, The Economist has made it more and more difficult to consume the content in a flexible manner.
DARCI is a self hosted platform for aggregating, viewing and analyzing Destiny 2 PVP stats. Released as an open source project in 2023, it is available for download from the DARCI Github project page.
DARCI provides similar functionality to Ascendant, but where as Ascendant focuses on deep data views of a single player, DARCI can track and compare multiple players (perfect for friends or a…
Ascendant is a MacOS desktop application for collecting and analyzing your Destiny 2 PVP stats. Originally released in 2023 it is available for download at ascendantapp.info.
The application provides what is probably the most comprehensive view, breaks downs and analysis of individual player data available in the Destiny 2 community.
Features Include:
General Display current activity…
DCLI (Destiny Command Line Interface) is a suite of command line tools for syncing and analyzing Destiny 2 PVP data. Originally released in 2001, it is written in RUST, and available for Mac, Windows and Linux.
The code for the project is released under an MIT License. The latest release, as well as code is available on the DCLI Github project page.
Utilities dclim : Manages and syncs the…
The WoW TCG Utility is a native Mac OS X application for searching and managing cards for the World of Warcraft Trading Card game. This was an app I worked on from 2009 to 2010, and released as a free, open source project (released under an MIT License).
You can view the project page as well as download and view all of the code from the WoW TCG Utility Github Page.
Mike Chambers has spent the two and a half decades supporting, fostering, and advocating for developer and creative communities. During that time, he has worked with numerous apps & technologies including Flash, Photoshop, Python, .NET / C#, Flex, Objective-C, Cocoa, JavaScript, HTML5, Dart and Flutter. He is currently the Senior Director for Community at Adobe, responsible for worldwide community…
Continuing my posts as I learn about the Bevy game engine for Rust, this post covers the basics of working with windows in Bevy, including how to set the initial size, and handle window resize events.
Setting The Initial Window Size In order to set the initial window size, you need to specify the settings via a WindowDescriptor resource added before DefaultPlugins are added.
Here is some…
I have started to play around with learning some game development using the Rust based Bevy game engine. One of the first things I wanted to make sure I understand is the coordinate system used by the engine. However, it was a little different than what I am used to (web and Flash), and took me a bit to figure out. This post gives a quick overview and summary of the 2D coordinate system used in…
I am working on a new Rust based Destiny 2 project (dcli) and needed to be able to calculate the last date / time that Destiny 2 had its weekly reset (every Tuesday at 1700 UTC). Finding the previous Tuesday wasn’t too difficult, but adding the specific time on Tuesday added some complexities and I wanted to share my solution in Rust using the Chrono library.
First, lets look at a quick…
I have been spending some time the past week playing around with Arch Linux. I really like the approach of a bare bones install and understanding every single thing on your system. However, this can lead to some frustration when you are first starting out (my first install I ended up without a network, any fonts or a kernel!).
Anyways, I think the most workable barebones install of Arch Linux…
I have been wanting to learn a bit more about Linux, and see if it could maybe work for me as a day to day machine for general development and usage. I have some old laptops laying around that I’m not currently using, so I figured I would spend the weekend and install Linux one of them. I decided on ArchLinux as it seems to be well regarded and is bare bones, built for people who want to…
I have been playing around with the Alpha version of Flutter Desktop lately, and needed to use a SQLite database which I may need to update at runtime. This was causing an an issue, as once I loaded the database file into SQLite it was holding a lock on the file (and thus preventing me from overwriting it).
Since I was only reading from the database, and never writing, I wanted to just…
Grant Skinner and I have released a new iOS and Android app for Destiny 2. Redrix is a Destiny 2 PVP companion app which gives you information and stats when playing Crucible mode in Destiny 2.
The response from the community has been overwhelming. The app made the front page of Reddit (2), and has had a couple of articles and reviews posted online.
We are using Bungie’s Destiny 2…
I have ported my Twitch Live browser extension for Google Chrome to Firefox. Twitch Live is a toolbar extension that makes it easy to see when your favorite streamers on Twitch are live.
There are options to open streams in a new window or tab, to enable notifications, as well as filter out vod casts / reruns.
You can install the extension from the Firefox Add-Ons site. If you have any…
I have been playing around with openFrameworks and some Perlin noise this weekend, and put together a quick project which autogenerates high resolution desktop wallpaper graphics. I grabbed a couple of my favorites and wanted to share them here to make them easy to download.
You can grab the code on my github page.
Here are the graphics. Just click through for the high resolution version.
Paper.js is currently the primary creative framework that I use for my creative coding. I really like its API, which is easy to use and extend, the ease in exporting vectors graphics from it (making it easy to create high resolution prints), and the general ease of development due to the use of JavaScript and running within the browser. While I do sometimes miss the higher performance that lower…
I have put together a Google Chrome extension named Adobe Live on Behance which makes it easy to keep track of when Adobe is live streaming from Behance.
Install Adobe Live on Behance Chrome Extension.
To use, install the extension which will place a small Behance icon on the Chrome tool bar. When Adobe is live, the icon will turn blue, and show “LIVE”. Just click the icon, and…
I am working on creating a new Google Chrome extension, and needed a way to quickly test and iterate on toolbar badges and icons. So, I created a simple Google Chrome extension to make it easy to test Google Chrome extension toolbard icons.
The extension is called Chrome Extension Icon Tester and is avaliable as an open source project via Github.
The extension allows you to quickly test…
I recently received my amateur radio general license and setup my station. One of the first formats I was interested in was JT65, as it provides good reception, even with poor signals, and it has a fairly structured format which makes it a bit easier to start with. So, what is JT65? From Wikipedia:
JT65, developed and released in late 2003,[3] is intended for extremely weak but slowly varying…
I have just released a project called pizone that uses a Raspberry PI, along with some NodeJS code to create a customer Nintendo Zone access point. This allows you to connect your Nintendo 3DS to the point, and get Spot and Street Passes (along with other game specific items) from players around the world.
You can see a quick video here:
Features include:
Creates a portable and custom…
I am using a lot of Adobe Kuler Adobe Color themes in one of my projects. However, there is not a quick way to get the color theme information in a format that is easy to use in code (I have been manually copying and pasting each individual color value).
I was going to write a Chrome content script, but then found out it can’t read variables from the page. So, I put together a quick code…
Recently I have been spending some time playing around with Paper.js, an open source vector graphics scripting framework that runs on top of the HTML5 Canvas, similar to CreateJS.
One of the cool features of Paper.js (and the reason I am using it) is that it has support for exporting its content via SVG. Among other things, this allows me to bring anything I create into Illustrator, and gives…
I recently completed migrating my blog from Wordpress to Jekyll (complete post on that soon). One of the main reasons for the move is that I didn’t want to continue to have to maintain MySQL, Apache, PHP and everything else required by Wordpress. However, before I shut everything down, I wanted to create a static archive of the entire Wordpress blog, in case I find some content in the future…
I am currently playing around with the HTML5 FileSystem API, and have a need to test my files served via a web server. I could setup a virtual director for my local apache server, but given the number of simple tests and experiments I do, I wanted something easier that required little to no configuration and setup.
So, I put together a super simple script that uses python’s…
Just as we did in Europe a couple of weeks ago, Lee Brimelow and I are doing a series of Flash get togethers in North America over the next couple of weeks. I will be talking about the roadmap for the Flash runtimes, and leading a discussion around recent development in the Flash world. Lee will be showing off some of the new stuff we are working on around gaming.
We have just posted a new whitepaper on Adobe.com. The whitepaper, titled Adobe roadmap for the Flash runtimes lays out the 1 to 2 year roadmap for the Flash runtimes (primarily Adobe AIR and Flash Player). This includes information on specific planned releases, longer term player work, and supported platforms.
This is actually the third Flash platform white paper that we have released in the…
If you follow me on twitter, then you may have noticed that I have been working on a white-paper laying out the roadmap and strategy for the Flash runtimes (Flash Player and Adobe AIR). The white-paper is going through internal review now, and should be available in the next 7 to 10 days.
As part of the release of the white-paper, I, along with Lee Brimelow, and Thibault Imbert will be…
I have worked with Flash and been part of the Flash community for about 12 or 13 years (over 10 of those with Macromedia and Adobe). Over that time there have been a lot of ups and down, but I think that the past couple of days have been some of the most difficult of my career. I wanted to make a post which will hopefully clarify some of the news from the past couple of days, and provide some more…
Yesterday was probably one of the most overwhelming days of my entire career. First, Adobe informed developers that we are going to stop developing the Flash Player for mobile browsers, then news came out that there were layoffs at Adobe, and finally, Adobe held a financial analyst meeting where we spelled out the Creative Cloud, and the fundamental strategic shift Adobe is making.
All of this…
I am in Tokyo for the week and just spoke at the Tokyo HTML5 Camp, giving a talk on some of the lessons learned from working on theexpressiveweb.com, and talking about Adobe and HTML. I have posted the slides with notes online.
Download Slides Here is a video of the playground included on the site:
If you have any questions or suggestions please post them in the comments.
I have been playing around a lot lately with motion graphics created using HTML5 and / or CSS3. One of my favorite new features is CSS Transitions, which makes it super simple to animate element properties between two states.
However, I ran into a gotcha the other day, and wanted to make a quick blog post in case anyone else runs into it in the future. Basically, if you change a property that…
UPDATE : June 6, 2012 : Due to a change in the Justin.tv APIs, this extension no longer works with Twitch.tv accounts. I have created a new extension, called Twitch Live which works with Twitch.tv accounts. Sorry about the hassle.
Since I started playing Starcraft 2, I have become a pretty big fan of e-sports, and in particular, of watching streams of games. The most popular site for streaming…
I have been playing a lot of Starcaft 2 lately, and really getting into the entire community. One part of the community that I recently discovered has been live streams of games (some from pros) via sites like justin.tv and ustream.com. There are plenty of articles online talking about how to stream your desktop on Windows based machines, but virtually none on how to do it from a Mac. This article…
I recently switched keyboards and picked up a daskeyboard professional (model-s). This is a really nice (and satisfying) mechanical keyboard, which I really like. However, das only makes a Windows version of the keyboard, and I am running Mac OS X. In general, this isn’t an issue, as I was able to remap control keys to be in the right position, but I really missed being able to quickly…
I have always been amazed by some of the digital art work that Mario Klingemann (aka @Quasimondo has created using with Voronois. After doing some searching, I found an early ActionScript 1 Voronoi implementation that Mario did, and I ported it to JavaScript.
I wanted to share the results:
Here is a graphic I created by playing around with the code:
The code is pretty much a straight…
Last week I was playing around with a little EaselJS experiment which required me to do collision detection against all items on the screen. This worked fine with a small number of items, but of course, the more items I added, the slower everything became.
I knew that I needed to optimize the code, and pare down the number of collision checks. I have done this before with a grid (even held a…
Comcast has made the Japanese NHK channel available for the next week. It can be accessed via channel 330 on Comcast. The broadcast is in Japanese, but if you have an SAP enabled TV or set top box, you can listen to a translation of the broadcast.
It took me a while to figure out how to enable secondary broadcast on my Comcast box, and I didn’t find much info online, so I wanted to post…
I have been having fun playing around with JavaScript, the HTML5 Canvas element and EaselJS lately, and have been building a lot of small experiments. I wanted to share a simple one I created, which creates spiral designs.
The example was pretty simple to put together, but is fun to play with, and can make some pretty nice patterns / spirals. I have uploaded a couple of images that I have…