Integrate an Indoor Positioning System with TRIRIGA

Get the code

Note: This pattern is part of a composite pattern. These are code patterns that can be stand-alone applications or might be a continuation of another code pattern. This composite pattern consists of:


In this Code Pattern, we’ll demonstrate how to build and deploy a custom perceptive application within a TRIRIGA instance. This perceptive application demonstrates how to render and update interactive floor plans from TRIRIGA, and to pull data from the Weather Company API. We also demonstrate how to deploy an indoor positioning system to render markers on the floor plan indicating the location of each user. The positioning system works by measuring the signal strength of all WiFi routers within the area.


When the reader has completed this Code Pattern, they will understand how to:

  • Design and publish a customized Polymer application to a TRIRIGA instance
  • Pull data from the Weather Company API
  • Import Building Floor Plans from TRIRIGA
  • Deploy and train a “FIND ” indoor positioning system on a cluster of Raspberry Pis
  • Visualize the user location in the perceptive app.



  1. The users’ mobile devices periodically measure signal strength of all wifi endpoints in the area, and then they forward the measurements to the indoor positioning system (Raspberry Pis).
  2. The indoor positioning system processes the measurements to determine the mobile device location.
  3. The mobile device location is stored and updated in Cloudant.
  4. The user loads the TRIRIGA perceptive app.
  5. The perceptive app queries the Weather Company API, the building floor plan from TRIRIGA, and the location data from Cloudant. The located devices are marked on the frontend floor plan.


Find the detailed steps for this pattern in the README. The steps will show you how to deploy on the cloud:

  1. Install the prerequisites.
  2. Provision the services.
  3. Generate the perceptive application.
  4. Deploy the Node.js app.
  5. Push the perceptive app to TRIRIGA.
  6. Deploy the positioning system.