Artemis VS OpenRGBEffectsPlugin

Compare Artemis vs OpenRGBEffectsPlugin and see what are their differences.

Artemis

Provides advanced unified lighting across many different brands RGB peripherals (by Artemis-RGB)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Artemis OpenRGBEffectsPlugin
27 24
911 -
4.2% -
9.3 -
15 days ago -
C#
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Artemis

Posts with mentions or reviews of Artemis. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-13.

OpenRGBEffectsPlugin

Posts with mentions or reviews of OpenRGBEffectsPlugin. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-21.
  • Prompts to get AI chatbots to make really cool shaders for OpenRGB.
    1 project | /r/OpenRGB | 9 Jun 2023
    Pormpt 1: I want you to act as a Shader developer. I will provide some details about the design of an shader, (which i may refer to as an RGB effect, RGB profile or or something similar. It will be your job to come up with creative ways to visualize my ideas. This could involve creating cool effects with unique designs. The shader will be vizualised on Internal computer RGB devices and RGB phepirals, such as RGB ram and RGB keyboards, the shaders should be optimized to work with that. The shader has to work in OpenRGB, i will provide some examples of shader code that works in openRGB as your knownledge on that already is very limited. Here are some code that works in OpenRGB: This is a shader that has beach like colors: // https://www.shadertoy.com/view/XtGSDz #define horizontal true float sigmoid(float x) { return 1.0 / (1.0 + pow(2.71828, -x)); } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 coords = horizontal ? fragCoord.yx : fragCoord.xy; vec2 res = horizontal ? iResolution.yx : iResolution.xy; vec2 uv = coords.xy / res.xy; vec4 water = vec4(0.2, 0.3, 0.8, 1.0); vec4 sand = vec4(0.75, 0.6, 0.4, 1.0) * 1.2 + 1.0/14.0; sand = mix(sand, sand/4.0, 1.0 - sigmoid(uv.x*10.0 - 6.0)); water += sin(uv.x) * cos(uv.y) / 2.0; water += 1.0 / 10.0; water += sin(uv.x) * cos(uv.y); uv.x += sin(uv.y * 7.0) / 20.0 * sin(iTime); uv.x += sin(uv.y * 3.0) / 10.0 * cos(iTime); vec4 wet_sand = mix(sand, vec4(0.8, 0.9, 0.8, 1.0), 1.0 - sigmoid(uv.x*10.0 - 4.0)); fragColor = mix(water, wet_sand, pow(sigmoid(uv.x*10.0 - 3.0), 2.0)); } - This is a shader with a beam effect: #define beam_color vec4(1.,0.,1.,1.) #define dir -1. void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = fragCoord.xy / iResolution.xy; float y = mod(dir * iTime, 1.5); float str = -pow((uv.y - y) * 110., 2.) + .8; uv.x -= clamp(str * .01, 0., 1.); float beam = pow(1. - pow(abs(uv.y - y), .3), 3.); fragColor = beam * beam_color; } - This shader has an effect with multiple Beams: #define PI 3.1415926535897932384626 float time = iTime; vec2 resolution = iResolution.xy; //f0:start zoom: float f0 = 0.5; //f1:vertical spread: float f1 = 0.05; //f2:horizontal spread: float f2 = 0.05; vec3 color = vec3(0.0, 0.3, 0.5); void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 p = (gl_FragCoord.xy * 2.0 - resolution) / min(resolution.x, resolution.y) * f0; float f = 0.0; for(float i = 0.0; i < 100.0; i++) { float s = sin(time + i * PI / 4.0 ) * 0.8 +f1; float c = cos(time + i * PI / 5.0 ) * 0.8 +f2; f += 0.001 / (abs(p.x + c) * abs(p.y + s)); } fragColor = vec4(vec3(f * f * color), 1.0); } - This shader is named bubblegum and has like a flowing space in the middle that changes colors: // forked from https://www.shadertoy.com/view/4tl3Rn float roundLookingBlob(vec2 fragCoord, vec2 tPos, float r) { vec2 pos = fragCoord.xy/iResolution.yy - vec2(0.5); pos.x -= ((iResolution.x-iResolution.y)/iResolution.y)/2.0; return pow(max(1.0-length(pos-tPos), 0.0) , r); } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { float v = 0.0 + roundLookingBlob(fragCoord * 0.2,vec2(sin(iTime)* 2.0, cos(iTime)*0.004), 10.0) + roundLookingBlob(fragCoord,vec2(sin(iTime*0.6)*0.2, cos(iTime)*0.3), 7.0) + roundLookingBlob(fragCoord,vec2(cos(iTime*0.8)*0.3, sin(iTime*1.1)*0.04), 5.0) + roundLookingBlob(fragCoord,vec2(cos(iTime*0.2)*0.2, sin(iTime*0.9)*0.05), 8.0) + roundLookingBlob(fragCoord,vec2(cos(iTime*1.2)*0.2, 2.0 *sin(iTime*0.9)*0.05), 8.0) + roundLookingBlob(fragCoord,vec2(cos(iTime*0.3)*0.4, sin(iTime*1.1)*0.4), 5.0) + roundLookingBlob(fragCoord,vec2(sin(iTime*0.6)*0.9, cos(iTime)*0.3), 7.0) + roundLookingBlob(fragCoord,vec2(sin(iTime*0.6)*0.3, cos(iTime)*0.8), 7.0) + roundLookingBlob(fragCoord,vec2(cos(iTime*0.3)*0.9, sin(iTime*0.1)*0.4), 3.0) ; v = clamp((v-0.5)*1000.0, 0.0, 1.0); float r = -1.0 * 1.0 *sin(iTime) - 2.0* cos(1.0 * iTime) * fragCoord.x / iResolution.x * fragCoord.y / iResolution.y; float g = 0.0 - 0.5 * cos(2.0 * iTime) * fragCoord.y / iResolution.y; float b = 4.0 + sin(iTime) - g + 0.8; fragColor = vec4(r * v, v * g, v * b, 0.0); } - This shader is named bubbles and gives some goood funny rainbow bubbles: float GetCircle(vec2 uv, vec2 position, float radius) { float dist = distance(position, uv); dist = smoothstep(dist - 1.2, dist, radius); return dist * dist * dist; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = vec2(fragCoord.xy - 0.5 * iResolution.xy) / iResolution.y; float pixel = 0.; vec3 positions[8]; float Time = iTime / 2.; positions[0] = vec3(tan(Time * 1.4) * 1.3, cos(iTime * 2.3) * 0.4, 1.22); positions[1] = vec3(tan(Time * 3.0) * 1.0, cos(iTime * 1.3) * 0.6, 0.12); positions[2] = vec3(tan(Time * 2.1) * 1.5, cos(iTime * 1.9) * 0.8, 0.4); positions[3] = vec3(tan(Time * 1.1) * 1.1, cos(iTime * 2.6) * 0.7, 0.15); positions[4] = vec3(tan(Time * 1.8) * 1.1, cos(iTime * 2.1) * 0.5, 0.25); positions[5] = vec3(tan(Time * 1.1) * 1.2, cos(iTime * 1.3) * 0.2, 0.15); positions[6] = vec3(tan(Time * 1.7) * 1.4, cos(iTime * 2.4) * 0.3, 0.11); positions[7] = vec3(tan(Time * 2.8) * 1.5, cos(iTime * 1.1) * 0.4, 0.21); for (int i = 0; i < 8; i++) pixel += GetCircle(uv, positions[i].xy, positions[i].z); pixel = smoothstep(.8, 1., pixel) * smoothstep(1.5, .9, pixel); vec3 col = 0.5 + 0.5*cos(iTime+uv.xyx+vec3(0,2,4)); fragColor = vec4(vec3(pixel) * col, 1.0); } - This shader is named cartoon-waves and is like a wave effect with red and blue colors: // https://www.shadertoy.com/view/ldjBRw float fast_tanh(float x){ float x2 = x * x; float a = x * (135135. + x2 * (17325. + x2 * (378. + x2))); float b = 135135. + x2 * (62370. + x2 * (3150. + x2 * 28.)); return a / b; } void mainImage(out vec4 O, in vec2 U) { O.xyz = iResolution; float y, i=-15., k=O.y, c; U /= k; while (i++ < 15.) c = exp(-.1*i*i), y = (.08 + .02 * sin(iTime*2.+i*2.)) * exp(-.01*i*i) * sin(iTime*2. + U.x / (.2-.1*c) + i*4. ) - i/2. + 1.5 - U.y, O += max(0., 1.-exp(-y*k*c) ) * ( fast_tanh(40.*y) * (0.5 + .4 * sin(iTime+i+vec4(0,1,1,0))) - O ); } - This shader is light blue and has a pink bubble that glows up in a breathing effect: #define speed 1.5 #define stop 1.0 #define color1 vec3(1.0,0.0,1.0) #define color2 vec3(0.0, 1.0, 1.0) void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = 2.0 * (fragCoord.xy / iResolution.xy) - 1.0; fragColor = mix(vec4(color1, 1.0), vec4(color2, 1.0), (uv.x * uv.x + uv.y * uv.y) * stop + sin(iTime * speed)); } - This shader is just a pink one where it gets blue in the sides some times and it happens fast: #define background vec4(0,0,1,1) #define animation_speed 10. #define spread 1.0 #define rotate false vec2 rotateUV(vec2 uv, float rotation, float mid) { return vec2( cos(rotation) * (uv.x - mid) + sin(rotation) * (uv.y - mid) + mid, cos(rotation) * (uv.y - mid) - sin(rotation) * (uv.x - mid) + mid ); } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = (fragCoord.xy / iResolution.xy - 0.5) * 2.* sin(animation_speed * iTime); if(rotate) { uv = rotateUV(uv, iTime, 0.); } fragColor = background+vec4(pow(spread - uv.x, 3.), 0.,0.,1.); } - This shader just shifts between colors and black: // https://www.shadertoy.com/view/Mdf3W8 float bump(float x) { return abs(x) > 1.0 ? 1.0*x : x ; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = (fragCoord.xy / iResolution.xy); float timeScroll = iTime* 1.0; float sinusCurve = sin((uv.x*2.0+timeScroll)/0.5)*0.3; uv.y = (uv.y * 2.0 - 1.00) + sinusCurve; float line = abs(0.1 /uv.y); vec3 color = vec3(0.0); color.x = bump( sin(iTime)*(uv.x - 1.0)); color.y = bump( sin(iTime)*(uv.x - 0.0)); color.z = bump( sin(iTime)*(uv.x - 0.0)); fragColor = vec4(color, 0.0); } - This one is some pink, blue and orange like waves ( i wanna note that i dont think mouse interractions work in OpenRGB) : //--------------------------------------------------------- // Shader: ColoredWaves.glsl // original: http://glslsandbox.com/e#5398.8 // added some mouse interaction //--------------------------------------------------------- float f1 = 30.0;// scale float f2 = 15.0; // size float f3 = 1.5; // gaps float f4 = 0.5; // position float f5 = 0.25; //shape modifier y float f6 = 0.25; //shape modifier x float f7 = 2.0; // amount // color channels multipliers float r = 1.0; float g = 1.0; float b = 1.0; void mainImage( out vec4 fragColor, in vec2 fragCoord ) { float scale = iResolution.y / f1; float ring = f2 + floor(- 5.5* 2.0); float radius = iResolution.x; float gap = scale * f3; vec2 pos = fragCoord.xy - iResolution.xy * f4; float d = length(pos); // Create the wiggle d += (sin(pos.y * f5 / scale + iTime) * sin(pos.x * f6 / scale + iTime * 0.5)) * scale * f7; // Compute the distance to the closest ring float v = mod(d + radius / (ring * 2.0), radius / ring); v = abs(v - radius / (ring * 2.0) ); v = clamp(v - gap, 0.0, 1.0); d /= radius; vec3 m = fract((d - 1.0) * vec3(r * ring * -0.5,g * -ring,b * ring * 0.25) * 0.5); fragColor = vec4(m*v, 1.0); } - This one is a bunch of neon lines in a boxed shape and the point of view are inside the box: //forked from https://www.shadertoy.com/view/4tlGRX #define freq 16.0 #define fov 0.5 #define background vec3(0.,0.,0.) mat2 mm2(in float a){float c = cos(a), s = sin(a);return mat2(c,-s,s,c);} vec3 tex(in vec2 p) { return vec3(1.)*smoothstep(0.1, 1.05, max(sin((p.x)*freq),sin((p.x)*freq))); } vec3 cubeproj(in vec3 p) { vec3 x = tex(p.zy/p.x); vec3 y = tex(p.xz/p.y); vec3 z = tex(p.xy/p.z); x *= vec3(1,0,0)*abs(p.x) + p.x*vec3(0,1,0); y *= vec3(0,1,0)*abs(p.y) + p.y*vec3(0,0,1); z *= vec3(0,0,1)*abs(p.z) + p.z*vec3(1,0,0); p = abs(p); if (p.x > p.y && p.x > p.z) return x; else if (p.y > p.x && p.y > p.z) return y; else return z; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 p = fragCoord.xy / iResolution.xy; vec2 p2 = fragCoord.xy/iResolution.xy-0.5; p2.x*=iResolution.x/iResolution.y; p2*= fov; vec3 ro = vec3(0.); vec3 rd = normalize(vec3(p2,-0.5)); mat2 mx = mm2(iTime / 2.0); mat2 my = mm2(iTime / 2.0); ro.xz *= mx;rd.xz *= mx; ro.xy *= my;rd.xy *= my; vec3 col = cubeproj(rd)*1.1; col.x *= sin(iTime + p.x+ p.y); col.y *= sin(1.23*iTime + p.x + p.y); col.z *= sin(1.57*iTime + p.x+ p.y); fragColor = vec4(background + abs(col), 1.0 ); } - This one is an X-factor like effect with some crosses from all sides moving into the middle and all elements changes colors: #define PI 3.14159 #define TWO_PI (PI*2.0) #define FREQ 2.0 #define time -iTime // shape #define x00 1.0 #define x01 1.0 #define x10 1.0 #define x11 1.0 void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = (fragCoord.xy / iResolution.xy -0.5) * FREQ; float a = atan(uv.y,uv.x); mat2 hyper = mat2(-cos(x00*a), sin(x01*a), sin(x10*a), cos(x11*a)); uv = abs(mod(uv*hyper+time,vec2(2.0))-1.0); vec3 color = vec3(0.5+0.5* cos(uv.y+time*0.5), 2.*uv.x, 0.5+0.5*sin(uv.y+time*0.3)); fragColor = abs(vec4(color,1.0)); } - This one is pink moving sine with a blue background: #define FREQ_MOD 4.0 #define TIME_MOD 2.0 #define AMP_SCALE 0.5 #define THICKNESS 0.2 #define wave vec3(1.0,0.0,1.0) #define background vec3(0.0,0.0,1.0) const float PI = 3.14159265359; const float DBL_PI = PI * 2.0; void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = fragCoord.xy / iResolution.xy; uv.y = -((1.0 - uv.y) - 0.5); float ampMod = ((sin(FREQ_MOD*iTime) + 0.25) + 1.0) / 2.0; vec2 ptOnWave = vec2(uv.x, sin((uv.x * DBL_PI) + FREQ_MOD * iTime * TIME_MOD) * (AMP_SCALE * ampMod)); float distToPt = length(uv - ptOnWave); float c1 = floor(((1.0 + (THICKNESS)) - distToPt)); float c2 = 1.0 - c1; fragColor = vec4( c1*wave + c2 * background, 1.0); } - This is the simplest one that is designed for customization and it is just some colors that shift fast: /* Make your own shader program. Make sure to read the documentation. https://gitlab.com/OpenRGBDevelopers/OpenRGBEffectsPlugin/-/blob/master/Effects/Shaders/README.md */ void mainImage( out vec4 fragColor, in vec2 fragCoord ) { float r = abs(sin(2.0 * iTime)); float g = abs(sin(3.0 * iTime)); float b = abs(sin(7.0 * iTime)); fragColor = vec4(r, g, b, 1.0); } - This one is some moving/distorting pink/light blue mosaic: #define color1 vec3(1.0,0.0,1.0) #define color2 vec3(0.0,1.0,1.0) #define divs 2.0 const float pi = 3.14159; void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 div = vec2( divs, divs * iResolution.y / iResolution.x ); vec2 xy = div*(fragCoord.xy / iResolution.xy - 0.5); vec2 sxy = sin(pi*vec2((xy.x + xy.y)*(xy.x - xy.y)*0.5 - iTime*1.0, xy.x*xy.y)); vec2 b = fwidth(sxy)*0.7071; vec2 pxy = smoothstep( -b, b, sxy ); pxy = 2.0*pxy - 1.0; float c1 = sqrt( 0.5 * (pxy.x * pxy.y) + 0.5 ); float c2 = 1.0 - c1; fragColor = vec4( c1*color1 + c2 * color2, 1.0); } i will make my first request after this message, i want you to not write anything else than the code. Your only output should be shader code, NOTHING ELSE. DONT start by making a shader, just simply say youre ready to comply with my request, Its important that you make the shaders work, if the shader dosent work i will give you the error codes that come in OpenRGB and its then your job to make the shader work. Shaders reacting to keyboard or mouse input is impossible to make in OpenRGB and you should inform me about that if i make a request to get my shader react to mouse or keyboard input. Shaders reacting is possible in OpenRGB and can be really cool, you dont have enough knowledge about thoose shaders so if i ask you to make a audio reactive shader (which i may refer to as a music reactive shader) you have to ask me for example code that works in OpenRGB. You cant make a music reactive shader without more information about how to do it from me. Dont give any examples of good ideas to make, just say youre ready after i send this, then i will in my next message give you instructions on what to do, what you can tell me is how you would like the instuctions so you have the best chance to make the shaders.
  • Can't find my Lian Li case's front RGB strip in OpenRGB
    1 project | /r/OpenRGB | 14 Oct 2022
  • Downloaded build 0.7 and I am not able to adjust Wave speed on Razer Hunstman Mini
    1 project | /r/OpenRGB | 8 Oct 2022
    Effects plugin
  • Begone iCue- the Legion Slim 7 keyboard can now be controlled by OpenRGB.
    2 projects | /r/LenovoLegion | 21 Aug 2022
    You will need the Effects plugin to apply effects, which you can find here.
  • New to openRGB. Install effects Plugin
    1 project | /r/OpenRGB | 4 Jul 2022
    OpenRGBDevelopers / OpenRGBEffectsPlugin ยท GitLab
  • msi center is confused?
    1 project | /r/MSI_Gaming | 25 May 2022
    I have had OpenRGB setting a static color for my board only. I go with Corsair when I can, just because I like iCue. I use https://gitlab.com/OpenRGBDevelopers/OpenRGBEffectsPlugin while in Linux though, and it's not horrible.
  • First experience with this program, absolutely negative so far
    1 project | /r/OpenRGB | 7 Apr 2022
    Download the Effects plugin and add it to OpenRGB, you will get a new tab with bunch of new effects.
  • Corsair K70 Keyboard Effects
    1 project | /r/OpenRGB | 7 Apr 2022
  • How can I control the rgb animations of my Arctic P12 ARGB?
    2 projects | /r/OpenRGB | 2 Mar 2022
  • 6900XT Aorus Master - can't control with Aorus or RGBFusion
    1 project | /r/gigabyte | 19 Feb 2022
    I just use OpenRGB with my X570 Aorus Ultra board and it works great, especially with the effects plugin. It's way more configurable and has way better patterns than RGB Fusion, and it also works with a ton of other hardware (like keyboards, mice, GPUs) from all different manufacturers making it the only sane way to have linked/consistent RGB lighting. Having to use 3 different pieces of equally terrible RGB settings utilities is the worst.

What are some alternatives?

When comparing Artemis and OpenRGBEffectsPlugin you can also consider the following projects:

Aurora - Unified lighting effects across multiple brands and various games.

OpenRGB

qmk_firmware - Open-source keyboard firmware for Atmel AVR and Arm USB families

Logitech-WLED-Sync - Windows application for syncing Logitech RGB devices to WLED.

OpenRGB

RGB.NET - The one-stop SDK for RGB-peripherals

OpenRGBVisualMapPlugin

openrgb-python - A python client for the OpenRGB SDK

openrgb-rs - Rust client library for OpenRGB SDK.

MSIRGB - Alternative to MSI Mystic Light for controlling motherboard LEDs, without the fixed 7 colour limitation.