1. Simulation of the neon sign

The first step is to create a draft of the neon sign in the form of a simulation. To give an idea of possible solutions have a look on these examples of LED-signs.

design and simulation

Design a neon sign in the programming environment Processing. Use the example code available in the information section to generate the most realistic simulation of the advertisement.

Simulation of a neon sign

The simulation of the neon sign can be implemented well with the help of the programming environment “Processing”.

For more information on Processing, check out the Fundamentals of Processing course.

The principal procedure for creating the simulation is as follows:

  • An image of the desired illuminated advertising is selected as a bitmap and displayed in the simulation.
  • Suitable positions for the mounting of LEDs are selected and programmed.
  • Desirable animations are implemented.
  • A drill template will be generated

led sign simulation
Simulation result

drill template
Drill template of the sign

The following sample code shows the implementation of the school logo of the Carl-Reuther Berufskolleg.

PImage img;
int lednumber=1;
boolean printerFriendly = false;

void setup() {
    img = loadImage("logo.png");

    size(800, 800);
    img.resize(800,800);
    textSize(10);
    noStroke();
}

void draw() {
    background(255);
    if(!printerFriendly) {
        image(img, 0,0);
    }

    lednumber=1;
    drawC(mousePressed);
    drawR(mousePressed);

    text("x: "+mouseX+", y: "+mouseY, 10,780);
}

void drawLED(int nummer, int x, int y, boolean lichtAn) {
    if(lichtAn)
        fill(255,0,0);
    else
        fill(120,0,0);

    if(printerFriendly) {
        fill(255);
        stroke(0);
    }

    ellipse(x, y, 15, 15);
    if(printerFriendly) {
        for(int i=-7; i<7; i++) {
            point(x+i,y);
            point(x,y+i);
        }
    }

    fill(0);
    text(nummer, x+10, y+10);
}

void drawC(boolean lichtAn) {
    drawLED(lednumber++, 155,83,lichtAn);
    drawLED(lednumber++, 195,70,lichtAn);
    [...]
    drawLED(lednumber++, 47,548,lichtAn);
    drawLED(lednumber++, 16,508,lichtAn);
}

void drawR(boolean lichtAn) {
    //39
    drawLED(lednumber++, 350, 787,lichtAn);
    drawLED(lednumber++, 350, 747,lichtAn);
    [...]
    drawLED(lednumber++, 547, 494,lichtAn);
    drawLED(lednumber++, 507, 497,lichtAn);
}

You can download the complete processing code here .

Leave a Reply