Overclock.net banner

1 - 6 of 6 Posts

·
Registered
Joined
·
2,512 Posts
Discussion Starter #1


Luciferin is a generic term for the light-emitting compound found in organisms that generate bioluminescence like Fireflies and Glow Worms.

Firefly Luciferin is a Java Fast Screen Capture PC software designed for Glow Worm Luciferin firmware,
those two software create the perfect Bias Lighting and Ambient Light system for PC.

Differently from other solutions, Firefly and Glow Worm Luciferin are designed to work together for the best experience possible.

Why don't you build your own Luciferin?

Here's a Quick Start guide
https://github.com/sblantipodi/firefly_luciferin/wiki

And here a YouTube video of the software in action:
 

·
Overclocker
Joined
·
11,347 Posts
Because Java isn't fast and software based screen capture isn't cheap plus to spend even more CPU cycles controlling lights is a wasted performance.

These softwares are plenty for use with readily available DIY controllers.

One question, can it do DX11, DX12, Vulkan, OGL capture in FSE? Or are the capture APIs it uses only "Windows desktop"? I suppose despite being in Java this doesn't work on Linux or Mac, etc.

Seems like you're wrapping or calling a gstreamer "wrapper" for any more performant solution in Java. Yeah I didn't have high hopes for Java to capture screens using it's own code/interpreter at any sensible speed.
 

·
Registered
Joined
·
2,512 Posts
Discussion Starter #3 (Edited)
Because Java isn't fast and software based screen capture isn't cheap plus to spend even more CPU cycles controlling lights is a wasted performance.

These softwares are plenty for use with readily available DIY controllers.

One question, can it do DX11, DX12, Vulkan, OGL capture in FSE? Or are the capture APIs it uses only "Windows desktop"? I suppose despite being in Java this doesn't work on Linux or Mac, etc.

Seems like you're wrapping or calling a gstreamer "wrapper" for any more performant solution in Java. Yeah I didn't have high hopes for Java to capture screens using it's own code/interpreter at any sensible speed.
It works with DX11, DX12, OpenGL/Vulkan and every kind o graphics library in full screen or borderless window.

Screen capture is accelerated using Windows Desktop Duplication API so this isn't related to Java performance.

My software uses up to 0.5% using a 6 cores CPU at 1080P
and up to 3% at 4K using a 6 cores CPU.

I can say it's fast :)

Linux and Mac version is coming really soon.
 

·
Overclocker
Joined
·
11,347 Posts
Does the DDUPL work for you via gstreamer with adaptive sync active? Or does it have the same problem as other ambilight using DDUPL where it's reported to disable Async?

https://github.com/psieg/Lightpack/issues/239

I think I saw the Luciferin earlier, maybe already have it saved.

Usually the problem so far with the software capture approach is getting good enough capture support (different modes, APIs, ...) at a high enough performance so it can deal with 4k120 etc. and not choke on the capture part, all in all it will need to copy frames from GPU to RAM fast enough. While being able to deal with Async, HDR, ... and not be thrown off by them, though that may as well be due to the capture library/API issue.

For reading the few pixel values of an image and sending data to LED controller, Java is likely fine, using some Java's screen capture though as you wrote is likely beyond abysmal :/

Does it really need multiple threads/bots to copy image from GPU to RAM? I don't think the copy is that slow, or does the capture API need to be spammed with capture requests to get any sensible capture FPS?
OBS has shared texture or some such they say for game capture, but overall it requires constant updates to keep up with Windows updates and new APIs over the years.

Personally I would not choose Java especially when one ends up calling native libraries anyway :D It's an extra hassle and slow down.

What other options are there for software capture and control? Lightpack, prismatik, some russian ambi software reused by Chinese selling whole kits for cheap (Ambibox), Adalight, etc. at least what I could quickly find, can't find if I saved these before somewhere. How is Luciferin better than those?
Another thing is support for different LED strips as there are better ones than WS2812B.

Another issue is latency of the lights and not adding latency to the system.
On a beefy Ryzen system with many cores it's probably not a big problem to software capture but on older CPUs I try to avoid software capture when ever possible.
 

·
Registered
Joined
·
2,512 Posts
Discussion Starter #5
Java is not slow if you know how to use it.
At 4K there is a CPU load of 3%, less then 0.5% when in full HD with an old six cores haswell-e.

My software runs no problem with variable refresh rate.

I used most of the software you mentioned but they all have a big problem. They don't have an official firmware designed for the software.
I designed the screen capture software for the firmware that controls the led strip.
Integration is pretty straightforward, you read a wiki in 5 minutes and you are ready to go, you can't say the same for other solutions.

I have an easy integration with home automation systems like home assistant.

Firmware can be used like an "ambilight" and can be used like a lamp with various colours and effects.

This week I'm going to release a full wireless solution with MQTT support.
Next versions will support multiple microcontroller to drive multiple led strips for big rooms with good home cinema.

WS2812B is in my hopinion the best strip for the purpose, if you give me some reasons on why supporting other strips I can easily add the support.

If you are interested in the project. Cast a star on GitHub and subscribe, tons of new features are on the road and the current solutions is on par with other solutions if not better already
 

·
Registered
Joined
·
2,512 Posts
Discussion Starter #6
Luciferin 1.1.0 is now completely wireless thanks to full MQTT support.
 
1 - 6 of 6 Posts
Top