‘Philips Hue Entertainment’ is a major software update for the Philips Hue v2 bridge, Philips color capable lights and the Philips Hue app which is going to strengthen the lighting system’s integration into any home entertainment experience.
Our goal with Hue Entertainment is to fully immerse Hue users in their music, TV, movies and video games with high-quality, synchronized lighting effects.
As we’re sure you know, wireless communication with Philips Hue is based on the ‘Zigbee’ protocol. Zigbee uses a mesh network where every light repeats a message, providing simple, secure and reliable coverage in any home. This technology is fantastic for scene setting and automated-command use cases but runs into limitations when we try to push fast-changing special effects in live entertainment content.
To create the synchronized effect we wanted, Hue Entertainment is developed as a new streaming-optimized interface which co-exists next to Zigbee.
How Hue Entertainment works
A Hue Entertainment command is built through the following process:
- The command packages together the target state of up to 10 light channels in a custom Zigbee message.
- This message is sent as a unicast over the mesh network to an automatically chosen proxy node in the target entertainment room.
- This proxy node sends out a non-repeating low level MAC layer broadcast which all nearby lights will hear.
- The nearby lights unbundle the message and act on their states.
Since the command is unicasting together with MAC broadcasts, we can stream commands 25 times per second to any light in the home whilst still creating spatial effects across multiple lights, all without causing network congestion.
Additionally, the mechanism has no retries, which benefits an entertainment setting where synchronization is critical: for example, a delayed frame from an explosion in an action movie is worse than skipping the frame entirely.
|1 light at a time
||Multiple lights at a time. Same state or pre-stored
||Multiple lights at a time
||Multiple lights at a time. Ad hoc states
|Any light using mesh
||Any light using mesh
||Only nearby lights
||Any light near the proxy
|Great for light control and scene creation.
||Great for room control and scene recall
||Great for room based entertainment synchronization
|Explicit retries for confirmed delivery
||Implicit retries from many neighbours
A new API and SDK
The need for a time synchronization-driven interface led us towards a new bridge-streaming API for Hue Entertainment. This bridge API is based on UDP and DTLS rather than HTTP, allowing us to drop frames to maintain synchronization as necessary.
We plan to release the source code for a dedicated software development kit we’ve created, so developers can easily build applications combining lighting and entertainment. Called the Hue Entertainment Development Kit (EDK), it is written in C++ with portability and usability in the gaming world in mind.
The EDK not only wraps the Hue bridge discovery and streaming API, but also provides a light effect-rendering engine. Often, replicating effects in a room needs to be independent of the specific home setup, so the EDK takes care of mapping spatial effects onto the user’s specific entertainment layout, which is created in the Hue app. This means the explosion or lightning to your left can be programmed to affect all three lights on that side of the room, or just one light, depending on your setup.
It also offers other primitives for controlling or iterating over specific lights.
What happens next?
As we put the final touches to the API, we’re already busy working on content in the labs, and also with our potential partners and developer community.