About Media Download Support
Download v2.1
ScreenBloom uses Python to grab the average color of your current screen and sends that value to your Hue lights.
ScreenBloom approximates the effect of the Philips Ambilight TV line on any computer screen. Due to the limitations of the Hue bulbs, ScreenBloom's effect is designed to be subtler and less immediate but still plenty responsive.
A snapshot of your current screen is taken and converted into a list of R,G,B values for each pixel.

Each pixel's RGB values are added to 3 running totals. The totals are averaged to produce your screen's current average color.
Original Desktop Image Desktop Image Resized
Avg Color Extracted
Color sent to Hues

The computed RGB average is gamma corrected, converted to a CIE value used by Hue, and a command is sent to update the lights.

Pixels that are too dark or too light don't count toward the color average but are instead used to produce a scaled brightness value which raises and lowers the Hue bulbs' brightness level accordingly.

The ScreenBloom UI Videos Note that many subtler color changes don't come through in video
Load More GIFs
Version 2.1 November 2016 Release Notes
- Presets. Save and load ScreenBloom configuration settings. - Per-bulb brightness. Each bulb now has its own min/max brightness values in addition to a global value. - Silent mode (Windows). Use the -q or --silent command line arguments to run ScreenBloom without loading the user interface. - Multiple Gamut Support. Lightstrips, Blooms, and newer generation Hues will now output colors from the full range of their gamuts (better blues/greens, mostly). - Many bugs fixed including common startup errors that would prevent ScreenBloom from launching.
Previous Versions
Latest Version
Have a question about ScreenBloom? Check out the FAQ below or send me an email directly
Think ScreenBloom is a cool app? Toss some beer money my way, if you'd like
System Requirements?
ScreenBloom will run on just about anything, but you'll get the best results on a quad core CPU with a wired network connection.

A quality internet connection is probably the most important aspect of the program's responsivess.
What Kind of Resources Does ScreenBloom Consume?
The fully installed application takes up roughly 20MB of disk space.

While running ScreenBloom lives in ~16MB of RAM and uses ~3-15% of the CPU (depending on the capabilities of the CPU).
ScreenBloom Error / Won't Start?
Sometimes the config file that ScreenBloom creates can get corrupted resulting in all kinds of nasty errors.

The first thing to try when solving any ScreenBloom problem is to regenerate your config file. You can re-create your config from any ScreenBloom page.

ScreenBloom Regen Config Button Check the bottom right section of the page
Using a High DPI / Resolution Screen?
If you've got a high resolution display ScreenBloom might have trouble grabbing an image of the entire screen. This is due to a quirk in one of ScreenBloom's dependencies.

Luckily the fix is very simple. You just need to check Disable display scaling on high DPI settings in the ScreenBloom executable's compatibility settings.

Right click on screenbloom.exe, click properties, and find the Compatibility tab. Refer to the image below.

Display Scaling Compatibility Option Find the file at the path highlighted blue and check the box highlighted red
Updated From Previous Version And Getting New Error / UI Looks Weird
Your browser might be using a cached copy of the code from the old version of ScreenBloom. You just need to hard refresh your page and your cache will be cleared.
Press CTRL + F5
Press Opt + Cmd + E

Can I Use ScreenBloom with Videogames?
Definitely, but with one caveat.

Games need to be run in windowed mode to have their pixels parsed by ScreenBloom. Many games offer an official Fullscreen Borderless Windowed mode which makes this process very simple.

For everything else there is a free program available. Windowed Borderless Gaming With this software you can turn any windowed application into a borderless fullscreen one. Perfect for ScreenBloom!
Big Delays?
Some users report large delays between light updates. CPUs running ScreenBloom at a high or variable speed can cause commands to be spammed at the Hue bridge too quickly resulting in a mini DDOS attack and eventual slowdown.

Setting an Update Buffer can resolve the issue (located in the Update Speed menu).

You'll want to experiment and find the lowest possible setting that improves ScreenBloom's responsiveness.
Can I Access ScreenBloom From a Mobile Device?
ScreenBloom starts a tiny web server that hosts the application interface on your localhost IP address in the example format below:
When you launch ScreenBloom your default browser will automatically access this address in a new window/tab.

Grab the address from your browser's URL bar (I just bookmark it) and head there on any device - you'll have full control over the ScreenBloom process.

The web interface is responsive and lightweight so controlling ScreenBloom with a phone or tablet is relatively painless.
About Latency...
ScreenBloom’s update loop runs roughly every 100ms. Any lower and the potential for the Hue bridge to become overloaded with commands (and cause large delays) significantly increases.

100ms is fast but still latent enough to occasionally create perceptible delays when updating the lights. This is much more noticeable during very fast scenes and especially between drastically different color palettes or brightness levels. Setting a higher transition speed can help mitigate this effect.

Even so, 100ms is the best case scenario. Your network quality and CPU speed will further impact how quickly the update commands can be sent to your lights. You’ll need to tweak the program’s settings to best suit your individual setup.
What is This DOS-Looking Window?
ScreenBloom diagnostic console
This is the Python diagnostic console for the program's web server.

Sometimes useful error messages are output there but it can mostly be ignored.

To run with the console open on Mac, open the app package contents and run the /MacOS/screenbloom.exec file.