Chameleon: An Open Platform for Developers and Users

Chameleon at its core is a database with a flexible database schema which can be used to contain almost any type of data. Through our hybrid design using the best of relational and key/value pair design, it becomes an ideal warehouse for data. And with a powerful web interface, users can organize data in unlimited ways.

What is less known about Chameleon are some of the more technical aspects, namely its capability as an open platform for developers and users. Here are some of the highlights: 

    • Chameleon API for writing graphics apps using Chameleon or external data
    • Open database design allowing 3rd parties to add parsers and other data related services
    • SDK for tight integration to Chameleon’s ticker and branding resources
    • BLADE – RESTful api providing endpoints to all containers in multiple formats
    • Community support – sharing data between instances of Chameleon
    • Dynamic Tags – foundation for extending existing data types
    • Custom data type when there isn’t a fit with one of the other standard data types
    • Query data type for creating dynamic playlists using any and all Chameleon data
    • Scripting support for html5 Designer
    • OEM Support and Interface Skinning/Feature Hiding


All the rendering for our html5 graphics is done on the client side (JavaScript on a client’s browser). But there’s a pipe of data between an application we call the Chameleon Web Server to tell JavaScript what project, scene and data mappings to use for each render.

The Chameleon.api is an interface to the Chameleon Web Server to allow it to do more than just tickers. This interface listens for commands to show a scene with a set of key/value pairs to map to fields in the scene. The api is a simple interface to load projects, set scenes online or offline, update an existing scene and a callback to signal the end of a render.

The Chameleon.api is available in nuget to integrate into 3rd party applications. Those applications might be scorebugs, sequencers or any custom requirement for rendering graphics. In fact, Bannister Lake uses this api for some of their own applications like the Branding and Elections Player.

We encourage developers to use the Chameleon.api to create the next great graphics application.

Open Database

Chameleon uses MySQL as its database system. It is an open-source relational database management system. It is a free and open-source software under the terms of the GNU General Public License and is also available under a variety of proprietary licenses. There are derivatives to MySQL such as MariaDB and others.

We learned early on that Bannister Lake could never provide all the data resources to populate our database. Language limitations limit our capability of writing resources for datafeeds of character sets like Kanji. We certainly can contain that data in Chameleon but without language experts, we have no way of interpreting the data.

For this reason, our goal was to open up the Chameleon database to internal and 3rd party developers to create parsers or any other data script for our Chameleon customers. For that purpose, we have made access to the Chameleon database open by providing common MySQL credentials to allow access to MySQL Workbench and MySQL connection tools for any type of software development. We even provide sample source code to parsers.


All of Chameleon’s data/containers can be used in a loose fashion through BLADE. It’s a powerful way to support all platforms including web widgets, character generators and digital signage. However, Chameleon allows for tighter integration of graphics through its SDK. This allows for tickers to use rundowns and branding assets.

Tight integration also requires publishing information about graphics to the database. This provides templates for generating bugs or snipes. It also provides the magic to include data containers for a rundown’s zones.

The SDK itself is on the playout side for creating players that can use all these database resources for tickers and branding. For tickers, it allows mapping containers to graphic zones in a ticker making it as simple as dragging a data container into a rundown. The SDK covers all the work behind the scenes to make this all work.

For example, here is a rundown for a zone in a show (our term for a group of zones)Zone Selection Rundown

Using the information in the database when graphics are published, rundowns know what types of containers it can support. This tight integration of graphics also extends to branding assets. Here’s an asset defined to provide a countdown clock bug to Christmas:

Asset Editing - Countdown

When a platform supports these graphics-based resources in the Chameleon database, we call the platform tightly coupled. Once tightly coupled, a platform has some magic behind it where tickers and branding are all defined in Flow, Chameleon’s web interface.

The interface to the SDK for providing tightly coupled support is a series of methods that are not unlike the Chameleon.api where it supports information about bringing scenes online or offline and updating. It’s even possible to have an SDK implementation support Chameleon.api to provide additional 3rd party development support.


Chameleon has an endless supply of data containers. Those containers might be a broadcast channel’s program schedule, world news, league scores, stock index quotes or weather for a group of cities. Each container has an endpoint for acquiring the data from a url to be used with any platform whether it’s a ticker (broadcast, digital signage, streaming,…), website, branding or character generator.

BLADE (Bannister Lake Active Data Exchange) is a RESTful api to all that data. There is a url to pull any Chameleon container. Not only that, Flow provides a page to discover the urls. For example, if we wanted to find the json url for getting the Dow Jones 30 components, Flow’s BLADE discovery page makes it easy. No docs to read. Just pick what you want:Bannister Lake BLADE UI

The url discovered here is an active and live resource located on one of our cloud instances and formatted in json. Go ahead and give it a try:

Originally, BL created a central location to store useful information like sports scores or weather forecasts. This was intended as a data resource for our customers. We also opened it up so that data providers could login to an instance of Chameleon and edit their own data for broadcasting purposes.

But we went further with this idea. What we came up with is a way to share data between any Chameleon instance. Basically, Community Support provides a way of syncing a container with a container from another Chameleon instance (another database) or even between content groups of the same Chameleon instance. We call these container to container syncs maps.

In Flow, users can setup maps by defining the Chameleon instance source and then mapping a source container to a destination container:

In this example, we’re mapping the Chameleon instance located at all the sport scores for leagues MLB, MLS, NBA, NFL and NHL. We support mapping of most Chameleon containers, even query source containers (mapped to Custom).

Dynamic Tags (aka Dynamic Fields)

Early on in the design of Chameleon, we found the need to extend existing data types with additional fields. For example, each sport has unique data beyond team names, scores and status. While baseball might need information on who is up to bat, the count, team errors and so much more, a sport like hockey might need shots on goal, hits, penalty/power play information. There are 2 ways to approach this problem. Either add new fields to a relational data table (forever) or attach additional data to a core data type. We chose the 2nd method. All of the Chameleon data types have support for extending data by attaching dynamic tags to records. These dynamic tags can be text, numbers, dates, boolean, json or media. We even went all in on this idea by having a data type we call Custom which is essentially just dynamic tags.

For example, here’s a simple dynamic tag providing a logo for episodes of Bonanza:

And here are dynamic tags for an NHL player:

Note that we are working on a new data type for dynamic tags: set. Basically, a set is a set of dynamic tags. This is a way for any dynamic tag to reference a set of dynamic tags providing full hierarchy of data. This could be used to store season or game information for players or teams. It could also be used to store different language versions for a story.

Custom Data Type

Not all data fits into standard Chameleon data types such as story, weather or finance. That’s where the Custom data type comes in. It is essentially key/value pairs attached to records. Chameleon calls these key/value pairs dynamic tags or dynamic fields. Although all the other data types have key/value pair support, the Custom data type is exclusively key/value pairs. Any 2 dimensional data is a good candidate for using the Custom data type. For example, a spreadsheet is a good example of what is a good fit for Custom where each column is a field and each row are the values to a record.

A good example of the use of Custom is containing COVID-19 data. For example, here is Canadian COVID-19 data organized by province: Here we’re showing some of the fields for the province of Quebec.

Another example is organizing medal counts for events like the Winter Olympics:

Like all dynamic tags in Chameleon, key/value pairs can be strings, dates, numbers, booleans or media. Custom data is organized in topics and is just another container to Chameleon where it can be used like any other container.

Query Data Type

Query is Chameleon’s method for creating dynamic playlists and to format data in a precise way. For example, if we had all the Dow Jones components in a Financial container ordered ascending by symbol: 

What if we wanted the data sorted descending by volume? One could create a playlist and manually order by volume but when the markets are open, the data is highly dynamic. That’s where Query comes in. It can create dynamic playlists. And these playlists are treated like any other container in Chameleon with the difference being the query behind it gets executed whenever utilizing the container. 

Query is based on writing SQL SELECT statements. These statements are what get executed on the container. Any data in the database is fair game for query. Here’s an example of the SELECT statement behind a query for getting the top 10 volume leaders for the Dow Jones 30 components:

The above query gives us:

Designer Scripting

Most character generators or graphics environments have some form of scripting support. Chameleon’s web renderer is no different in that respect. It allows writing scripts to accomplish dynamic tasks. For example, here’s a script for a scene that shows sports scores. It will mark the team with the colour red if the team is leading or has won: 

Designer uses CoffeeScript as its scripting language which gets translated to JavaScript at render.

OEM Support and Interface Skinning/Feature Hiding

Chameleon’s most visible interface is Flow. Flow is the web interface which provides access to the world of Chameleon; not just the data but the operational aspects of data like triggering graphics. From the beginning, Flow provided support for skinning Flow. For example, each election, we’d provide a different skin for our election users. We also provide support for hiding features so users aren’t bombarded with things they don’t need or want.

Flow can easily hide content by turning on and off features. If an instance of Chameleon is used for only sharing/working with certain data types, it’s easy to hide features. For example, here is what is available for our Community instance:

While an instance like our Chameleon cloud instance provides more functionality for playing out graphics:

It’s also possible to skin Flow for any purpose whether it’s for OEM partners, internal customer support or distinguishing between instances. Here are a few examples of Flow headers:

In the last example, it shows an example of Chameleon as an OEM product for Ross Video. We are seeking interest from new OEM partners who wish to integrate Chameleon into their own product eco-system. Everyone needs good data so Chameleon is an excellent fit for many products.

News, Broadcasting, Production and COVID

SMPTE Toronto’s January 2021 Virtual Go-To Webinar meeting reviewed how Global News and Corus Entertainment have had to adapt to the restrictions faced by the changing COVID regulations. Gerry Belec, National Director, Operations & Technology focused on the world of plexi-glassed control rooms, mask-wearing staff and PPE’d reporters. Gerry shares how working from home accessing operations systems for Graphics, Elections, intercom and monitoring via the network was possible.

Watch Global TV’s Live Election Night with Bannister Lake Chameleon

Chameleon For Elections

Election night is one of the most important events for television broadcasters. You want to be absolutely correct when you call races. Watch how Global TV used Bannister Lake’s Election Module for three Canadian Provincial Elections and the 2020 US Federal Election. In this video, Global TV’s Gerry Belec, Director of News Technology & Operations and Laith Jadua, Global’s Graphic Technologist explain how they used Chameleon Election software for all their graphic displays including Broadcast L-Frame’s, Touchscreen, OTT channels and the Global News web site.

Bannister Lake Drives Global Television’s Coverage of Three Canadian Provincial Elections On-Air and Online

Bannister Lake is pleased to announce today that it played an instrumental role in the production of three recent Global News provincial election specials. The company’s Elector software was used by editorial teams in British Columbia, Saskatchewan and New Brunswick to track results, make race calls and manage full frame graphic and ticker playout. Bannister Lake also provided custom software development services creating interactive web widgets. The web widgets were used to visualize results on on-set touchscreens that allowed analysts to navigate through various provincial ridings and pinpoint election results. In addition to results data, the widgets included other contextual datasets including demographics and historical voting outcomes. A second set of widgets were created and fully integrated into the website providing users with access to election results in a fully interactive format that could be accessed by any device.

“We have a longstanding relationship with Bannister Lake and having them add their expertise to our online election coverage not only improved the overall web experience, it created a strong sense of consistency across both our properties”, said Gerry Belec, Director – News Technology and Operations, Global News.

Global took full advantage of Bannister Lake’s HTML5 capabilities and integrated election results data directly into VizRT graphic engines that populated regional L-bars. Bannister Lake’s election data was also incorporated into Global’s News’ social media distribution efforts populating graphics announcing breaking election news.

“Our election solutions are completely agnostic and work well on any graphic engine and as our web widgets demonstrate on any device. For broadcasters using various products to reach their audiences both online and on-air, we offer exciting new ways to tell the election night story.”, said George Hentsch, President, Bannister Lake.

The Global Television Network and its parent company Corus Entertainment use Bannister Lake solutions in a variety of innovative ways. In addition to election coverage, Bannister Lake’s Chameleon data aggregation and management solution powers L-Bar graphics for both the network’s regional morning news shows and for its over the top news channels. Chameleon also powers an extensive digital signage network with localized news, weather, sports and other data-driven content.

Broadcast Graphics Expert Phil Carmichael Joins Bannister Lake

Bannister Lake is pleased to announce today that broadcast graphics industry authority Phil Carmichael will be joining the company as Director, Sales and Marketing. Phil brings decades of experience to the role in a number of capacities including product management and as a demonstration specialist. Phil began his career at CBC Calgary as a broadcast technician before focusing on broadcast graphics. As a graphic designer and operator, he specialized in sports production and worked on a wide variety of high-profile events including the Stanley Cup playoffs, Major League Baseball and the Olympic Games. Phil moved on to become a product specialist at Chyron where he worked closely with a variety of customers helping them gain a deeper understanding of both the products and associated workflows.

“We are pleased to have Phil join our team and explore new opportunities. He is well known in the world of broadcast graphics and uniquely brings experience from both an operator perspective and from a pre-sales angle”, said Georg Hentsch, president, Bannister Lake.

“I have been impressed with Bannister Lake and the Chameleon product for many years and am excited to join their efforts to bring more real-time data capabilities to broadcast graphics. The company’s dedication to product development and custom data solutions is needed in the industry and I look forward to contributing to Bannister Lake’s success”, said Phil Carmichael.

Bannister Lake’s flagship data aggregation and management product Chameleon plays an important role in broadcast, digital signage and over-the-top. As audiences’ demand for real-time data continues to increase, Chameleon provides producers with new opportunities to enhance storytelling with data visualization, improve production workflows and create exciting new business opportunities.

CustomWeather and Bannister Lake Form Partnership to Create New Business Opportunities in Broadcast and Digital Signage

Bannister Lake and CustomWeather  announced today that they have entered into a partnership to develop joint business opportunities and enable users of Bannister Lake’s Chameleon software to incorporate weather data from specialized weather company, CustomWeather, Inc. CustomWeather is an industry-leading weather data provider featuring forecasts for 85,000 global locations in 95 languages, providing high-resolution forecasts from its proven forecasting model, the CW100.

Bannister Lake’s Chameleon product is an innovative real-time data aggregation and management solution used throughout the broadcast and digital signage industry to power and populate graphic templates. The solution drives news tickers, election results, financial data, wagering, and other editorial applications. Chameleon is also used for on-air branding applications, controlling and populating snipes, bugs, promos, and “coming up next” boards. Chameleon’s RESTful API allows data to be reformatted and strategically distributed to broadcast graphic engines, as HTML5, and be integrated into mobile applications.

 “Bannister Lake’s Chameleon software offers a novel way for us to expand our reach in the broadcast and digital signage market,” said Geoff Flint, President and CEO of CustomWeather. “Our superior weather products combined with Bannister Lake’s expertise in managing real-time data and custom development offers tremendous value to their customers.”

“CustomWeather is an ideal partner for Bannister Lake. Weather data is an important data source for our customer base and CustomWeather’s accuracy and assortment of data products provides an attractive offering for both the broadcast and digital signage market”, said Georg Hentsch, President, Bannister Lake.

Both CustomWeather and Bannister Lake will actively pursue opportunities that leverage each others expertise in creating real-time data and custom software solutions. As data specialists with strong development skills in database, APIs, and applications, Bannister Lake designs, builds, and implements solutions that utilize editorially relevant data sources, such as CustomWeather, to engage audiences and attract advertising revenue.

Bannister Lake Completes Chameleon Integration and Custom Development Project at RFD-TV

Bannister Lake is pleased to announce today that it has completed a major project for popular agribusiness and rural lifestyle channel RFD-TV. RFD-TV is owned by Rural Media Group, INC. (RMG). RMG properties include The Cowboy Channel and Rural Radio Sirius XM channel 147. The Nashville based cable network provides viewers with extensive daily coverage of commodity markets and other business news of special interest to the farming industry.

RFD-TV required Bannister Lake to oversee a number of upgrades including, the transition to a new data provider, integration of real-time data into updated graphic engines, create and power graphic tickers, and design and build a custom application allowing on-air talent to select, edit and control graphic playout.

Bannister Lake acted as the liaison between data provider Barchart and the channel to ensure that RFD-TV journalists were receiving the financial and editorial content required. The development and project teams at Bannister Lake worked closely with both Barchart data experts and RFD-TV engineering staff to ensure that RFD-TV’s data calls worked flawlessly. The Bannister Lake financial application provided news anchors with visibility into real-time commodity pricing and the ability to quickly create graphical financial charts and tables. Anchors would then use the application to generate graphic playlists and take the lists to air without incumbering the control room.

“Bannister Lake provided RFD-TV with an innovative way to take real-time data from our data provider and give our editorial teams the control they needed to customize that content,” said David Mitchell, Chief Technology Officer, RMG. “In addition to generating and populating tickers, we dramatically sped up our production process by running the entire graphics workflow from the anchor desk.”

The financial application also included a sponsorship management component that allows RFD-TV to schedule and execute sponsors’ logos associated with specific graphic boards. The solution automatically generates logs to reconcile logo exposure with advertising sales. This solution provides a more efficient workflow, while managing new revenue opportunities.

“We are pleased to see RFD-TV embracing Chameleon and our custom financial software solutions. The project represents what we do best, reading and ingesting complex real-time data sources and providing producers and editorial teams with the tools they need to disseminate that content to audiences as efficiently as possible”, said Georg Hentsch, president, Bannister Lake.

In addition to powering tickers for RFD-TV, Bannister Lake also created tickers for The Cowboy Channel. The 24-hour television network is dedicated to western sports including bull riding, roping, reining, and barrel racing. Chameleon plays an instrumental role visualizing results, standings, and event schedules.

Bannister Lake Provides Election Results Data Services and Graphics for the 2020 Jamaican General Election

Bannister Lake announced today that its election solution was used to cover the 2020 Jamaican General Election. In partnership with Jamaican production company Phase 3 Productions, Bannister Lake supplied Chameleon software, graphic design, and data integration services. Phase 3 made the election graphics feed available to its media partners including the Jamaica Observer newspaper who incorporated the graphics as part of its online coverage of the election.

Phase 3 played an integral role, adding candidate headshots, co-ordinating data with the Electoral Office of Jamaica and acting as the liaison with end-users. Phase 3 is the island’s most popular provider of television production services and has a great deal of election experience.

“We are always trying to raise the production bar when it comes to covering our national elections. Chameleon allowed us to create very sophisticated graphics under a tight deadline and generate a feed we could share with clients. We hope to work with Bannister Lake on future data related events”, said Delano Forbes, CEO, and creative director at Phase 3.

Bannister Lake developed a custom reader for the Jamaican election data feed and was able to test and implement the solution in a few days. The election campaign only lasted 20 days creating tight deadlines for both Bannister Lake and Phase 3.

“The Jamaican election project came together quickly. Our years of experience working on Canadian elections came in especially handy since Jamaica has a similar parliamentary system. Phase 3 was a great partner to work with and was integral to meet the tight time constraints”, said Georg Hentsch, president, Bannister Lake.

Bannister Lake’s Chameleon data aggregation and management product includes a powerful general-purpose election software solution. The solution is specifically designed to manage any kind of election style: US presidential, congressional, state races, first past the post, majoritarian, proportional, parliamentary, in addition to referendums, propositions, or down ballot races such as DA, school board or city council. This is possible because of a unique design approach Bannister Lake has taken. The election solution is organized by a combination of “contests” and “choices”. A contest would include specific areas or offices up for election while choices would list the parties and candidates participating in the race. It is this simple but unique approach that allows the product to have the flexibility to address any kind of election or polling situation.

US Election Data Expert Drew McCoy of Decision Desk HQ to Host Special Bannister Lake Webinar

Bannister Lake is pleased to announce today that election data expert Drew McCoy will host a special webinar aimed at producers, reporters and analysts covering the upcoming US elections. The webinar will take place on Tuesday, August 25 at 2:00pm eastern. Drew is president of election results and data collection and reporting service, Decision Desk HQ (DDHQ). In his role at DDHQ, Drew is responsible for all aspects of DDHQ’s election, business, and editorial operations.

The systemic changes in the organization of US elections forced by COVID-19 will have dramatic implications on the flow and reporting of results data. Drew will be discussing what election production teams can expect regarding the dissemination of official results and how this will impact coverage planning, making calls, timelines, and other potential challenges facing the election system this November.

DDHQ is at the forefront of technical innovations that leverage the changes in how voters have been casting ballots, election officials report results, and how outlets, particularly online platforms, consume and publish election night results.

“We’re pleased to be joining forces with Bannister Lake to inform production teams everywhere about the extraordinary changes in store for election data reporting this November”, said Drew McCoy, president, Decision Desk HQ. “It’s crucial for anyone covering the elections to understand the implications and anticipate how their work will be impacted.”

Bannister Lake’s Chameleon data aggregation and management solution reads election results data from providers such as DDHQ and the Associated Press. Chameleon provides media organizations working on any platform with a powerful tool to track and analyze election races, make calls, and create and manage graphics populated with real-time results data.

“The upcoming US elections will be unprecedented in terms of ballot counting and the distribution of results. From both a software and a data perspective, both Bannister Lake and DDHQ are well prepared to handle the dramatic changes in results reporting and this webinar featuring Drew will help our clients produce the best coverage possible’, said Georg Hentsch, president, Bannister Lake.

DDHQ began operations with the 2012 U.S. presidential election. In 2014 DDHQ gained national attention by being the first election service to call Dave Brat’s upset win over then House Majority Leader Eric Cantor in that year’s GOP primary. Recently DDHQ has experienced rapid expansion providing election results and related data to outlets such as Buzzfeed, Vox, The Washington Post, The Baltimore Sun, Business Insider, and many others.

To register for the webinar please visit: