Skip to content

LED Curtain Math Class

Share this Post:

Good morning class, does everyone have a calculator? Today’s lesson is about calculating the center point of an image so we can align two LED curtains hung with space in between with different pixel pitches so that the image of one continues onto the second cleanly. The trick is to calculate where the center point is and work outward to find the starting pixel of the image. What follows is an example of how to work that math.

Recently I did a show using a 100mm PixelFLEX LED Curtain and a 20mm PixelFLEX LED Curtain.  The 100mm curtain was approximately 21 feet high by 42 feet wide.  Each square panel of 100mm curtain measures to be slightly over 10 feet wide by 10 feet tall, so I used four panels wide by two panels high to create the curtain.  This curtain was hung on an upstage pipe as the background to the 20mm curtain and touched the ground.   The 20mm curtain measured 17 feet high by 25 feet wide; because each panel of the 20mm curtain is roughly four feet wide by eight feet tall, we used six panels wide by two panels tall to create the 20mm curtain.   This curtain was hung on a pipe about five feet downstage of the 100mm curtain and floated to hang roughly in the center of the 100mm curtain as we could get. Did we use a tape measure to get it perfect?  No, I went with the ‘to the eye’ method and positioned it so that I had a fairly even border of 100mm curtain around the outside of the 20mm curtain.  Then, knowing that I was using a media server with two video outputs and that I was planning to send each curtain an individual feed, I got out my pencil and did a quick sketch.

Total Pixel Count

Each panel of the 100mm curtain is 32 pixels wide by 32 pixels tall. Each panel of the 20mm curtain is 64 pixels wide by 128 pixels tall. Here’s the first math question in this lesson. What is the total pixel count for each of the two curtains? Remember that they are in four by two (100mm) and six by two (20mm) configurations.

100mm:

4 panels wide = 4 x 32 = 128 pixels wide

2 panels tall = 2 x 32 = 64 pixels tall

20mm:

6 panels wide = 6 x 64 = 384 pixels wide

2 panels tall = 2 x 128 = 256 pixels tall

As you can see, the 100mm curtain will allow for an image that is 128 pixels wide and 64 pixels tall, while the 20mm curtain allows for an image that is 384 pixels wide by 256 pixels tall.

Finding (and Aligning) the Center

Right after you realize that all of your high res content won’t be as useful as you hoped, you can begin on the next math question: Where is the center point of the image for each curtain? This one is a little more involved.

First of all, you will need to know what the maximum resolution of the image size can be for the LED Curtain. In this case, PixelFLEX processors can handle 1024 by 768 pixels nicely, so we kept it at that resolution. This doesn’t mean I can see all 1024 pixels of an image on a curtain that only physically contains 384 or 128 pixels in width, so I turn to my calculator and notepad once again.

The most important pixel I need to determine in order to align the two curtains is the pixel in the center of each curtain in relation to a maximum resolution of 1024 by 768. So, a second math calculation is needed to determine the centermost pixel of each curtain, starting by dividing the panel counts in half.

100mm Curtain: 4 x 2 panels (WxH)

Horizontal center pixel: 2 (panels) x 32
(pixels per panel) = 64

Vertical center pixel: 1 x 32 = 32

100mm Curtain Center Pixel Coordinates:
64,32 (W,H)

20mm Curtain: 6 x 2 panels (W x H)

Horizontal center pixel: 3 x 64 = 192

Vertical center pixel: 1×128= 128

20mm Curtain Center Pixel Coordinates:
192,128 (W,H)

Using these two sets of coordinates, I then can determine where they line up in relation to an image with 1024 pixels in width and 768 pixels in height. After calculating the center pixel of a 1024 x768 image to be 512,384 (W,H), I can then create an image map in the processor of the LED curtain that correctly places the centermost pixels of both the 100mm curtain and the 20mm curtain directly over the centermost pixel of the 1024×768 image. This quickly aligns both curtains to the center of the max resolution size, and makes it easy to see that a single image playing on both of the two curtains simultaneously will be in sync and aligned.

Now, if you aren’t using a media server, you could probably stop there with this lesson and simply use an ImagePRO or even the LED processor to scale the image going to the curtains down proportionately so that you can see more of the actual image appear on the curtains themselves. (A 1024×768 image displayed on the curtains described here would be blown way out of scale; you would only be seeing the innermost portion of the total pixels in the image on the curtains.)

Scaling the Images

Assuming you’d rather see the entire image being sent on the limited pixel count available in the curtain, you are going to have to do some scaling. I prefer to do the scaling in the media server, personally. And using PRG’s Mbox media server on this gig, I wanted to create Alignment rectangles to determine the precise alignment of my two outputs. So I need to determine one last pixel on both of the curtains: the X,Y coordinate of the pixel in the upper left corner of the curtain. Since I am staggering two curtains (the 100mm curtain extends beyond the border of the 20mm curtain), the pixel map of the curtains can not simply both be at pixel 0,0. Each curtain must have a unique X,Y coordinate within a maximum size of 1024×768 for this to be as accurate as possible.

Using the centermost pixel of each curtain, I can determine the uppermost left pixel fairly easily:

100mm:

Center Pixel Coordinate: 64,32

Center Pixel of 1024×768: 512,384

For X: 512-64 = 448

For Y: 384-32 = 352

The pixel in the upper left corner of the 100mm curtain needs to start at the X,Y coordinate of 448,352.

20mm:

Center Pixel Coordinate: 192,128

Center pixel of 1024×768: 512×384

For X: 512-192 = 320

For Y: 384-128 = 256

The pixel in the upper left corner of the 20mm curtain needs to start at the X,Y coordinate of 320,256.

Now, when you look at this on paper, it appears that the 100mm image is smaller than the 20mm image, and that’s because of the pixel pitch of the curtain. The 100mm curtain physically has 100mm between each pixel in the panel, making the image very low resolution — it is spreading out its 128×64 image across a 40 foot wide by 21 foot high curtain, whereas the 384×256 image on the 20mm curtain is packed together more tightly across the 25 foot wide by 17 foot high curtain.

After I know the starting pixel of both of these curtains, I can create my Alignment rectangles in the Mbox media server and instantly see an outline on my preview monitor of exactly what portion of the image appears in the box. With a little manual adjustment of both the X and Y positioning and the Scale of the layer, I can perfectly fit as much or as little of the image I want in the rectangle, and that is what we will see on the stage.

Don’t want to do all this math? The alternative to doing this is to just eyeball the preview screens, which, in some cases, may be just fine. However, if you have the time to set it up right in the beginning, you won’t box yourself in down the road.

Happy calculating!