Color display progress

Hey there!

Thank you!!

Yes, I designed the chassis myself, it’s still in development, it’ll be finished hopefully soon.

I haven’t decided whether I’d commercialize it or not, it started as “I want to own a saber of my own design”, since the only other saber I’ve ever designed, I gave it away to my now ex girlfriend, that’s how life goes, right? :joy:

Having said that, it’s a very expensive chassis, I’m using Shapeways for the 3D prints and in parts alone, the cost hovers around $2.5k.
Also it’s a very advanced build, comparable to Martin Beyer’s Metal Origin Chassis.

The chassis is designed for and inspired by the Model X/Y Canon flashes, though I’m trying to make it work with Graflex flashes as well, we’ll see.

I’ll be bothering professor more and more with the things I want to implement in this chassis, so I’ll be posting more pictures and videos as I get closer to the finish line.

Again, thank you!
I’m completely in love with my chassis, however, as the creator, I’m extremely biased :rofl:, so it’s good to see others find it to be a cool design as well!

Ok, I’ve pulled in the model, and my script for generate animations into GitHub - profezzorn/ProffieColorImages: Color images for use with ProffieOS color displays. I have also added some stuff for generating a basic battery overlay.

I feel like I at least need a boot-up image or animation, then I can make a “font” out of it.

Anybody know how to generate an animation that says “ProffieOS” without making it look like a slide deck from the 90s?

from PIL import Image, ImageDraw, ImageFont
import numpy as np

# Parameters for the animation
num_frames = 150
duration = 5000  # duration in milliseconds
text = "ProffieOS"
font_size = 60
image_size = (1024, 1024)

# Create a blank base image with a space theme background
base_image = Image.new("RGB", image_size, color="black")
draw = ImageDraw.Draw(base_image)

# Draw stars in the background
for _ in range(100):
    x = np.random.randint(0, image_size[0])
    y = np.random.randint(0, image_size[1])
    draw.point((x, y), fill="white")

# Load a font
font_path = "/path/to/your/font.ttf"  # Replace with the path to a suitable font file
font = ImageFont.truetype(font_path, font_size)

# Get text size
text_width, text_height = draw.textsize(text, font=font)

# Calculate position for centering the text
text_x = (image_size[0] - text_width) / 2
text_y = (image_size[1] - text_height) / 2

# Function to create a single frame
def create_frame(base_image, frame_num, total_frames, text, font, text_x, text_y):
    frame = base_image.copy()
    draw = ImageDraw.Draw(frame)
    
    # Calculate pulse effect
    pulse_intensity = 128 + 127 * np.sin(2 * np.pi * frame_num / total_frames)
    
    # Draw text with pulsing effect
    draw.text((text_x, text_y), text, fill=(int(pulse_intensity), int(pulse_intensity), 255), font=font)
    
    return frame

# Create frames
frames = []
for i in range(num_frames):
    frame = create_frame(base_image, i, num_frames, text, font, text_x, text_y)
    frames.append(frame)

# Save as GIF
gif_path = "ProffieOS_boot_screen_animation.gif"
frames[0].save(gif_path, save_all=True, append_images=frames[1:], optimize=False, duration=duration//num_frames, loop=0)

print(f"Animation saved to {gif_path}")

Lol

Ok, so how does this look?
Does it look cool?
(or 90s slide deck?)

Cool, where did these pictures come from? (Some genAI thingy?)
What’s the copyright situation?
(And some of those tie fighters look a bit wonky…)

Yes I was on my phone. I prompted chat GPT to use dall-e to make me "a 160x80 pixel boot screen image for a lightsaber OLED display featuring some sort off space theme with the Main focus on text saying “ProffieOS” .

1 Like

i like the 3rd one. We should make that the official Proffie OS Logo

Although…one of those TIE fighter images has a wing inside out… o.0

A couple of them are a bit wonky… good concept though. Could be cool to create something like that for real.

It’s getting better…

I used one of the images posted earlier, added a wipe and put it on the top layer during startup. The second layer is the battery monitor in the lower right corner. The crystal animation is the same as before.

Since these are all separate files and on separate layers, it’s super easy to change anything out for something else.

Also, I’ve uploaded everything I have so far to github:

The examples/crystal_chamber_160x80 directory contains the actual files I used in the video.

There are still some major bugs to fix though:

  1. it doesn’t work if I put these files in the font that is used on boot. I have to wait until the display is initialized, and then switch fonts, and then it works.
  2. switching presets doesn’t reset the display, whatever file is playing keeps playing, which is not really how it should work.

The cool part is that these bugs are high-level bugs that weren’t easy to see or fix until the rest of the system was working fairly well. Once these bugs are fixed, we might be at a point where we’re going to need more people trying it in order to find out what’s left to do. :slight_smile:

5 Likes

Ok, so these two bugs are fixed now, which I think means that color displays are semi-ready for people to start using them, at least in an alpha-testing kind of way.

Hi, sorry for the late reply.
I’ve taken time to try some things about sparks, but not convinced about the results I can have. I definitely miss tools and skills to make this cool/realistic, particle system is a hard path.

https://youtu.be/2yYzmOkhQiE

I can still make split renderings of that to make some tries until you have something better.

It’s up to you. If we can put it on a separate alpha layer, then it’s entirely up to each individual user if they want them or not.

I don’t suppose you have any ideas for anything else cool we could do instead?

I just push a render set in my fork:

I can try particle effects which can improve the flash effects. The cristal as emitter “propels” particles that are catch from top like a vacuumed energy. I think it can looks better than these ligthnings ^^.

I just push particles effects for tests :slight_smile:

Plus this is a proposal for the boot screen.

https://youtu.be/E1vkF90Z6oM

The boot screen looks pretty cool, although the full screen fade may slow things down quite a bit.

When I get a chance I’m going to try out the particles, they look pretty cool.

To avoid fading computation, this can be a unified render based on the crystal color choice, at least for the fade+chamber opening part.

When I get a chance I’m going to try out the particles, they look pretty cool.

Yup, feel free to ask some adjustment / improvement if needed (amount / shape of particles, speed, gravity strength…)

I could also make my script that generates the final animation do the compositing.