Introducing chameleon vision

Chameleon vision is a free to use, all in one vision processing program designed for FRC teams and their robots - just install and you are ready to go.

Using this software is extremely easy, just by using the web UI you can setup multiple cameras, pipelines, control the system‘s settings and much more - There is no need for programming experience.

All you need is a computer to run the program (arm or 64 bit) and USB cameras (preferably high fps ones). Just use the included install script and the rest is taken care of.

When will it be launched?
I’m at the final testing of the first beta version and hoping to launch the first version before the kickoff of 2020

So how can you help?
Currently, I’m looking for teams and programmers that would like to help make this software the best solution for FRC teams.

FRC teams: help test and integrate this software into their robots.

Programmers: if you have experience using C++ or python and some web development (mostly backend), your help is needed in further developing the program for the upcoming year and to achieve better performance.

If you are interested in helping you can contact me at

Your help will be greatly appreciated.


This is a game changer, I really like this!

Perhaps you can “sell” this a bit more. Why should teams use this over WPI’s pi image, Chicken Vision, or any number of other pre-made rpi vision systems?

Edit: I assumed because you said it runs on ARM that it was designed to be used with an rpi, but I realize now that you never actually said this. So I also have the same question as @tjf

A few questions:

  • Is it open source (so we can all make use of it and meet the rules for team code that inevitably exist?)
  • Is there a hardware package accompanying it (ie was it targeted for Jetson, RPi or what?)

Thanks so much for making this, this seems pretty awesome already. I’ll be watching keenly.


Would this be something I would run on, say, a Kangaroo computer? How does it compare with GRIP in that respect?

1 Like

I’m excited to see a new vision system, but I have a few important questions first:

  • What hardware is it intended to run on?
  • Is it open source?
  • What would be the advantage of using this over a competitor like Chicken Vision?

the software was ment as an all in one solution unlike wpi pi image or chicken vision it does not require the team to know any programming knowledge.
that means that after the installer runs and setup will finish there is no need in tweaking the software all that is left to do is use the UI.
moreover unlike other solutions all usb cameras are supported just plugin and set them up. currently the software is not open source but the final goal is to make it open source so that teams would be able to contribute and help make it better.

as for hardware support
currently i have tested the software on a 64bit linux system and an odoroid xu4
this means that this software will be able to run on any type of system,
as of know i cannot guaranty any performance measures for a computer that is now the xu4 that in my testing can reach about 87 fps and 60 using 2 cameras

as for why you should use this over any over solution

  • speed: chameleon vision can reach over 200 fps on selected hardware
  • ease of use: using an included ui to setup the entire program
  • continues development: chameleon vision is new and will keep development for the upcoming years

Will this be an open source software on GitHub or a similar platform?

yes the code will be available through gitlab


@agranight That’s a really cool project! But as i see you don’t calculate the distance between the target and the camera, is that have a special reason ? If no, i would like to help to add calculating distance support.

there is no special reason you are more than welcome to help

So, if I’m understanding this correctly… basically the concept here is to take the web UI interface (and it’s associated ease of use and functionality) from something like a LimeLight, and make it available so that it can work with ANY USB camera on a connected compatible platform (say, perhaps a RasberryPi or something similar), rather than some proprietary setup?

If so, this would certainly have the benefit of being a more scalable solution than other existing options. Being able to choose not only your own cameras, but also the hardware doing the processing would mean you could add to and upgrade your vision system as needed with potentially minimal additional hardware cost. Need a wider FoV? Just replace the camera or add a better one. Need to run more cameras? Just upgrade the processing unit and keep the cameras you already have.

One thing I would like to see (if it’s not already planned) would be to have a stream server so you can view your camera feeds from the driver station (like you can with a LimeLight), AND (if possible) allow teams to configure on-the-fly camera switching via this server to save bandwidth (so if I have 4x cameras running at once, but I only need to see one of them at a time, I could set up something in my code that would tell the controller to change the camera being sent through the stream mid-match, rather than having to have all 4x camera streams running at once and pulling 4x the bandwidth).


first of all you are correct the goal is to make the software and allow the teams to choose the hardware based on their needs, exactly just as you described it.

for the second part, currently all cameras are streamed at their resolution the final goal will be to control the streaming capabilities of each camera individually but this will take time to develop

1 Like

After seeing this I’m just curious how this is better than GRIP. If you add resolution selection that would be a nice thing to have (as some camera support different FPS/resolution) but otherwise I’m not too sure what one would get out of this. GRIP also lets you publish the data to a network table directly- how does Chameleon Vision export data?

as you can see in the photos i have uploaded chameleon vision allows you to choose resolution and the camera fps and exports data using network tables

You have a point, GRIP can do most of what this does. But the key advantage that Chameleon Vision appears to have over GRIP (if the screenshots are any metric) is its ease of use.

If Chameleon Vision can provide apt documentation for setup and use, it already has one upped GRIP in terms of accessibility. @agranight (consider setting up a Read The Docs site)

@SoProTheyGoWoah will be done

Didn’t see that before, the 187 FPS 240p screenshot looks really good!

GRIP lets you import pipelines, so as far as ease of use goes, this would probably be the same difficulty. But, the contour sorting on this is also better. So I’ll wait to see where this goes.

i have created a discord channel
you are all more than welcom to join

i have created a web page for the app