Project showcase
Colors of Photons

Colors of Photons © GPL3+

This painting change in each moment as new.

  • 32 respects

Components and supplies

Necessary tools and machines

Apps and online services

Spark Pixels
Thank You very much for this great works!

About this project

One day we started using Eva's acrylic glass which has been in the attic since many years ago. Until now, when inspiration came. Eva makes beautiful abstract paintings, and then we try to add Neopixels LEDs, microcontrollers and some code. The already fabulous painting with the continuously changing rainbow colours becomes a magical miracle. We watched and then we were overcome with a deep calmness, peace and love. This painting changed every moment as if new.

Acrylic and Pigment Painting on Acrylic Glass

Eva Konya used her amazing technique, and her talent made the painting have such an amazingly beautiful visual impact.

Working with one button, turn it on-off.

if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['db78e907ef'] = [{ URL: '', caption: 'When Off', type: 'image' }];
if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['e158401fbc'] = [{ URL: '', caption: 'caption (optional)', type: 'image' }];
if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['4a6a2d8165'] = [{ URL: '', caption: 'When On', type: 'image' }];

If you so desire, it can be capable of some clever functions too. It can turn on or off with motion sensing.

Stage 2

I am still working on sensing functions. I must figure out how and where to put the sensor inside the frame. I already have made a WiFi version as well with Particle Photon and with an Android app to control the Neopixels over the internet. That lets you change all the colours of the LEDs individually without coding the microcontroller.

"Internet of things" – things connected to the internet.

This allows us to enter into an interaction without light paintings from everywhere in the world. More ways can be made to connect a painting to the internet. As for me, I am playing with endless possibilities. You can "paint" by mixing the colours using a fixed brightness level, or by adjusting it to a custom moving speed.

Colour compositions with LED  NeoPixel/WS2812 Digital RGB LED Strip 144 - LED /m and with Microntroller/Arduino Uno or Particle Photon.

  • The 30 x30 cm Painting built-in battery  with charger, continuously working about 18 hours, with Anker 15600mAh power bank.
  • The 100 x 60 cm painting has no battery; it works with a wall plug adapter.


Éva Kónya

Painter,  Graphic designer

“With my artworks I would like to make a harmonious living space where people feel comfortable".

About Eva:

János Magyar

Light Artist, Chef, Prana Healer, Breathing Meditation

“I am excited for the "Multi Media/ Colors of Photons" project build and programming intelligent lighting-painting objects which are continuously changing and can sense the environment and our presence.”

What contributions can I make now for a better future?

"It reminds me that existence is none other than the constantly changing present."

Testing the colours with Arduino, Particle Photon, Lilypad
if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['50d578f7ac'] = [{ URL: '', caption: '', type: 'image' },{ URL: '', caption: 'Photon with NeoPixels', type: 'image' },{ URL: '', caption: 'Lilypad,Particle Photon,NeoPixels, it was so cool :) just like a living entity', type: 'image' },{ URL: '', caption: 'Trying with DotStar + Arduino uno', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: 'Pro Trinket,Neopixels, Anker Battery Bank,Push button', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' }];

These are the same Light Paintings.

if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['fac0a11b89'] = [{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' },{ URL: '', caption: '', type: 'image' }];
if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['ed7eddaba9'] = [{ URL: '', caption: '', type: 'image' },{ URL: '', caption: 'These are the same Paintings just in anothre moment', type: 'image' }];

The same paintings but in different moments:

if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['9ac07a91cc'] = [{ URL: '', caption: '', type: 'image' }];
if (typeof(lightBoxImages) == 'undefined') { lightBoxImages = {}; } lightBoxImages['38af741aa0'] = [{ URL: '', caption: 'caption (optional)', type: 'image' }];
Unfortunately, the video does not return what the eye sees, live more beautiful
Unfortunately, the video does not return what the eye sees, live more beautiful

I am open to any contributions and help as well, to leave it there in the open.


Fast LEDArduino
Just simple upload, and try to change, play with it :) This for Adafruit Pro Trinket or any Arduino thing with Arduino Ide or
#include <FastLED.h>

#define LED_PIN      9
// Information about the LED strip itself
#define NUM_LEDS    144
#define CHIPSET     WS2812

#define BRIGHTNESS  255

// FastLED v2.1 provides two color-management controls:
//   (1) color correction settings for each LED strip, and
//   (2) master control of the overall output 'color temperature' 
// THIS EXAMPLE demonstrates the second, "color temperature" control.
// It shows a simple rainbow animation first with one temperature profile,
// and a few seconds later, with a different temperature profile.
// The first pixel of the strip will show the color temperature.
// HELPFUL HINTS for "seeing" the effect in this demo:
// * Don't look directly at the LED pixels.  Shine the LEDs aganst
//   a white wall, table, or piece of paper, and look at the reflected light.
// * If you watch it for a bit, and then walk away, and then come back 
//   to it, you'll probably be able to "see" whether it's currently using
//   the 'redder' or the 'bluer' temperature profile, even not counting
//   the lowest 'indicator' pixel.
// FastLED provides these pre-conigured incandescent color profiles:
//     Candle, Tungsten40W, Tungsten100W, Halogen, CarbonArc,
//     HighNoonSun, DirectSunlight, OvercastSky, ClearBlueSky,
// FastLED provides these pre-configured gaseous-light color profiles:
//     WarmFluorescent, StandardFluorescent, CoolWhiteFluorescent,
//     FullSpectrumFluorescent, GrowLightFluorescent, BlackLightFluorescent,
//     MercuryVapor, SodiumVapor, MetalHalide, HighPressureSodium,
// FastLED also provides an "Uncorrected temperature" profile
//    UncorrectedTemperature;

#define TEMPERATURE_1 DirectSunlight
#define TEMPERATURE_2  DirectSunlight

//#define TEMPERATURE_1 OvercastSky  //ezek nagyon jok egyutt
//#define TEMPERATURE_2 MercuryVapor

// How many seconds to show each temperature before switching
#define DISPLAYTIME 3   
// How many seconds to show black between switches
#define BLACKTIME   0.0

void loop()
	// draw a generic, no-name rainbow
	static uint8_t starthue = 0;
	fill_rainbow(leds + 0, NUM_LEDS - 0, --starthue, 2);  //try to put lower and higher starthue 

														  // Choose which 'color temperature' profile to enable.
	uint8_t secs = (millis() / 1000) % (DISPLAYTIME * 2);
	if (secs < DISPLAYTIME) {
		FastLED.setTemperature(TEMPERATURE_1); // first temperature
											   //leds[0] = TEMPERATURE_1; // show indicator pixel
	else {
		FastLED.setTemperature(TEMPERATURE_2); // second temperature
											   //leds[0] = TEMPERATURE_2; // show indicator pixel

	//Black out the LEDs for a few secnds between color changes
	//to let the eyes and brains adjust
	if ((secs % DISPLAYTIME) < BLACKTIME) {
		memset8(leds, 0, NUM_LEDS * sizeof(CRGB));
	FastLED.delay(45);                //minel tobb a szam annal lassab 

void setup() {
	delay(3000); // power-up safety delay
				 // It's important to set the color correction for your LED strip here,
				 // so that colors can be more accurately rendered through the 'temperature' profiles
	FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalSMD5050);
This for the Particle Photon
Use with


Colors of photons circuit
Colors of photons cicuit
Photo 20160406 023157(1)


Similar projects you might like

Voronoi101: Light Your Lamp!

Project tutorial by Gregory O. Voronin

  • 30 respects

Arduino Compatible Nano NeoPixel Controller

Project tutorial by Team Whimsy Makerspace

  • 1 comment
  • 27 respects

Enter the house like a Sith Lord

Project tutorial by Prasantha Jayakody

  • 84 respects

Use the Force... Or your Brainwaves?

Project tutorial by Tamas Imets

  • 135 respects

Animating an LED strip from a computer

Project showcase by kendfrey

  • 120 respects

Android Things Word Clock

Project tutorial by Daniele Bonaldo

  • 152 respects
Add projectSign up / Login