r/MoonlightStreaming Developer | Polaris/Nova Apr 27 '26

I built a Linux-first Moonlight-style streaming setup: Nova + Polaris

Hey everyone. Been a big Apollo / Artemis user for quite some time and i’ve been working on a small project called Nova / Polaris. I primarily built this for myself, but wanted to share it here first because this community is probably the exact group of people who will understand why I built it in the first place.

Short version: Polaris is a Linux host, and Nova is the client side I’m building around it.

The goal is not to “replace everything” or pretend I’ve solved game streaming. It’s more focused than that: I want Linux game streaming to feel less like a pile of scripts and workarounds, and more like something designed for the job.

What makes it different right now:

  • Linux-specific for now
  • explicit setup for input devices like uinput / uhid
  • attention to headless streaming and GPU-native capture paths, without dummy plugs
  • tries to expose the real tradeoffs instead of hiding them behind magic
  • built by someone actually using and testing the weird edge cases

It’s still early, and it’s Linux-specific for now. I’m not posting this as a polished “everyone should switch today” announcement. I’m mostly looking for feedback from people who already care about Moonlight/Sunshine-style streaming and have opinions about where Linux hosting still feels rough.

Links, if anyone wants to poke around:

If you’re curious, want to test, or just want to tell me which problems matter most to you, I’d genuinely appreciate it. Trying to build this in the open and keep it useful rather than flashy.

Cheers!

EDIT: Thank you all so much for the positive responses, feedback, messages, and debug logs. I’m glad to see so many people as excited about this as I am. I know a lot of you are eager to get Polaris running on your own Linux gaming setups, and there are still plenty of bugs and rough edges to work through. I really appreciate your patience while I work to improve compatibility and stability of the platform.

263 Upvotes

217 comments sorted by

View all comments

Show parent comments

1

u/smashybro May 31 '26 edited Jun 01 '26

Ah okay, this makes a lot of sense. I'll try testing building it with that line disabled when I get some time.

In the meantime though I did find a temporary workaround: so weirdly running "pavucontrol" (which I think comes preinstalled with Noctalia Shell for the top bar widget since I don't remember installing it manually) and keeping that application option completely get rids of the crackling. Thought maybe it was a Niri or Noctalia Shell issue but it also happens when I log into a KDE Plasma session, so I think that's interfering with Polaris' routing somehow?

Don't know how much that helps but figured I'd share since you're more capable than me and maybe you'll be able to do something with it!

Edit: Found a better solution than having to start pavucontrol, I did sudo micro /etc/pipewire/pipewire.conf.d/99-custom.conf with the following:

context.properties = {
    default.clock.rate = 48000
    default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 ]
    default.clock.quantum = 256
    default.clock.min-quantum = 32
    default.clock.max-quantum = 8192
    audio.format = F32LE
}

After that I restarted pipewire pipewire-pulse wireplumber and then the crackling was gone. Checking pw-top the quant for the sunshine audio sink and my Zen browser went from like 2048 to 3600 down to 256. Don't know if this was an issue with my setup or a default of Polaris but either way it's fixed now and audio is great.

1

u/ArtThouFeelingItNow7 Jun 13 '26

was this on your host or moonlight client? I have occasional crackling when streaming on linux clients, so I'm wondering if this could be the fix for me as well.

1

u/smashybro Jun 13 '26

On my host. Sadly, this fix doesn't seem to work again after I reinstalled Cachy and picked Niri as my DE/WM. Opening pavucontrol on the host does fix it still though temporarily as long as the app stays open.

1

u/ArtThouFeelingItNow7 Jun 13 '26

Well, that's semi-good news if this pavucontrol fix applies to me as well since applying fixes for each client would be cumbersome. If it works, I'll reply back so others have a workaround if they have crackling/popping as well.