Ambient Dynamix (Dynamix) is a lightweight software framework that transforms a user’s mobile device into an adaptive smart gateway to the Internet of Things. Dynamix enables mobile apps and Web apps to fluidly interact with the physical world through advanced sensing, control and actuation plug-ins that can be installed into the user’s device on-demand. A Dynamix-enabled device can also serve as a gateway between mutually incompatible smart devices that are situated in the user’s environment. Dynamix comes with a growing collection of ready-made plug-ins and provides open SDKs that enable 3rd party developers to create and share new plug-in types with the community. Dynamix runs as background service on the user’s mobile device, leveraging the device itself as a sensing, processing and communications platform. Applications request context support from a local Dynamix instance using simple APIs. Dynamix automatically discovers, downloads and installs the plug-ins needed for a given sensing or actuation task. When the user changes environments, new or updated plug-ins can be deployed to the device at runtime, without the need to restart the application or framework. Dynamix is released under the Apache 2 open source license.
Dynamix provides app developers easy access to a growing collection of powerful context plug-ins for both sensing and actuation. Example plug-ins include: media system control; home automation interaction; access to external sensors (e.g., heart-rate and sleep); access to rich contextual information (e.g., indoor positioning and activity recognition; and many more! For details, check out all the plug-ins here.
Plug-ins can be dynamically provisioned to the device over-the-air during runtime (or from the file-system), enabling apps to adapt to a wide variety of environments. Dynamix is built on an industry-standard OSGi framework, and automatically handles plug-in installation and updates, plug-in lifecycle management and event caching.
Dynamix sends discovered context information to apps using plain old Java objects (POJOs), which eliminates the need to parse JSON, XML or other string-based encodings (if needed, string-based context representations are also supported).
Dynamix protects user privacy using an intuitive “context firewall”, which allows the user to precisely control the type of context information provided to each Dynamix application. Additionally, plug-ins are isolated within a security sandbox that restricts access to critical system resources, user data and Android services.
Dynamix is free, open-source (Apache 2), and looking for contributors. Dynamix provides open developer SDKs and a scalable repository architecture with connectors for a variety of repository types (including Maven).