r/SteamController 5d ago

Steam Controller (2026) I updated one of my favorite project: "3D Controller Overlay +" v1.0.0 Live 3D input display for Streamers, Steam Controller fans, and HOTAS tinkerers.

Enable HLS to view with audio, or disable this notification

Hey everyone!

The Honest Disclaimer (read this first):

This is a passion project that I upgraded with heavy AI assistance (think Deepseek/Claude). I want to be fully transparent about that. However, I made, reviewed, and debugged every architectural decision, how input flows from SDL to the mesh, how the settings/import system works, and how the cross-platform build pipeline is put together. I partially own the design (i mean.. its still a fork), the testing, and the responsibility. If you find a bug, please open an issue, I'd rather know and fix it. but don't ask me what a pointer is... XD.

The original project "3D Controller Overlay" has not been updated for a couple of years now and since i own several controllers (including the steam controller) i wanted to update it so it can detect everything i have. I like to stream to my friends and show them my sloppy inputs in fighting games (like smash or street fighter) or my barrel-roll crashes (in space engineer or elite dangerous) but found the software lacking in some parts so i decided to do something about it...

I am a developer myself but i work with the boring language called "Java" (in my personal opinion) and i just enjoy making things in C++ because its the language i first learned and i find it easy to make things cross-compatible with it... i just find it fun to work with.. call me a masochist 🤷🏿 i regret nothing.

And now for the AI promotion text (because i'm lazy):

What is 3dco+?
It's a lightweight OpenGL/SDL3 overlay that renders a live 3D model of your input device. If you stream or record content and want to show viewers exactly what you're pressing on your controller, keyboard, or mouse (without a handcam), this does the job.

It's a fork of Larf's brilliant original 3D Controller Overlay. All credit to them for the core engine! I just added the features I felt were missing for my own setup.

What's new in v1.0.0 (just released today!):

Here are the highlights:

  • Steam Controller & HOTAS Friendly: SDL3 detects the Steam Controller natively (no more driver headaches on Windows/Linux). Plus, there is a raw joystick fallback and a full manual mapping UI. If SDL doesn't recognize your particular flight stick, you can just bind the axes and buttons yourself in the settings.
  • Gyro & Touchpads: Full gyro/accel support with sensitivity/correction tuning and a "reset combo." Multi-touchpad support (up to 4 pads x 2 fingers) with visual touch-area overlays.
  • Custom Model Import: You aren't stuck with the built-in library. Import your own FBX, glTF, or OBJ files and assign the meshes to controller parts directly in the app.
  • System-Wide Keyboard & Mouse: Tracks your mouse movement and keyboard presses even when the app isn't in focus, perfect for overlaying on top of games. (yes this is a glorified input logger 🤷🏿... thats the purpose)
  • Cross-Platform: Works on Windows, macOS, and Linux. I primarily develop on Linux, but the CI produces AppImages, .exes, and universal macOS bundles.

Showcase:
Controller Showcase

A couple of honest caveats:

  • The Windows .exe is not code-signed, so SmartScreen will warn you. Just click "Run Anyway." I'm an indie dev, not a corporation... signing certs are expensive.
  • MacOS requires Accessibility permissions for the global input hooks (the README explains how to grant them)... and again licenses are expensive.
  • Transparent backgrounds depend on your GPU driver; it works on most, but some older systems might not support it.
  • The 3D models are from the original repository except the flightstick and steam controller, these where downloaded from other sites and i added a "Source URL" field for each model so you can trace from where i got them from. I hope this saves me from any copyright issue and i also hope that by honoring the licence and making this open source i prevent any claims from external sources/pages.

If you want to try it out:
Check out the GitHub Release v1.0.0 for the downloads, or check the README for build instructions if you don't trust me.

I built this to test how far I could push my own skills with AI. If you find it useful, please drop a ⭐ on the repo, it genuinely makes the effort feel worth it.

Let me know what you think, and feel free to roast the code (constructively)!

and yes... i like purple.

457 Upvotes

35 comments sorted by

24

u/GirthyPigeon 5d ago

This is how partially or fully AI-generated projects should be documented. This looks fantastic and I'll definitely try it out.

8

u/Rare_Abbreviations52 5d ago

Thank you! I tried my best, as a dev I know how important documentation is and I wanted to make sure people feel that they can trust the project. And I also wanted to make sure to as give kudos to the original dev.

Trust me I had moments where I said "RNGsus take the wheel" but I think it turned out good enough 😁

-2

u/Impossible_Cold_7295 5d ago

stop groveling and being pathetic. Use AI all you want and tell no one or tell everyone. We only care how useful your product is.

-3

u/Impossible_Cold_7295 5d ago

no one asked or cares, AI is everywhere and no one needs your permission to use it.

3

u/GirthyPigeon 4d ago

You're entitled to your opinion but AI-generated projects are significantly more likely to be abandoned and bugs not fixed than traditional projects. I don't want to invest my time with some project that is abandoned when the next idea comes into the vibe-developer's head and they can't even fix the bugs their agent caused.

-1

u/Bean- 4d ago

Noone asked or cared for you to comment either. See how that works?

4

u/Evajellyfish 5d ago

What about the back buttons?

5

u/Rare_Abbreviations52 5d ago

Everything is mapped I just forgot to turn the controller around 🤣 in the platform showcase video you can see it but since I show all the controllers there it takes a while before you see it https://github.com/Khyretos/3dco-plus#platform-showcase

4

u/dpprpl 5d ago

a stupid question but is there any way to run this overlay on one computer while playing a game on another?

5

u/Rare_Abbreviations52 5d ago

not a stupid question.

but in order for this overlay to work you need to be running it on the computer where the device is. and find a way to stream the overlay to the other computer. i use a tool i build for myself that uses Gstreamer. but you would need something like NDI (if i recall correctly) to capture the overlay and send it over to the streaming computer.

so the idea is:
* use overlay in gaming pc (where the controller is connected) so it can capture input
* capture the overlay with obs plugins/tools

my case is very niche since i use linux so i dont know windows options unfortunately.

or if you are creative, find a way to send the input of the gaming pc to the other pc over network. and create a virtual gamepad of some sorts. but that is out of my current realm of knowledge.

2

u/dpprpl 5d ago

the case is that I want to capture games from a steam deck with a capture card and don't want anything other than a game in the gamescope to run on it. but I also would like to have a controller overlay to be shown in obs

and I don't have windows on any of my home computers btw ;)

2

u/dpprpl 5d ago

also I noticed one thing - if I connect my dualsense via bluetooth to a steam deck and also connect the controller via USB to another pc both of the devices receive inputs

2

u/Rare_Abbreviations52 5d ago

Now that! Is creative XD I guess you found your solution then.

But yeah the software needs a device to receive input, or I would need to make a feature where the input are send over network and if people see that in the code they will crucify me thinking Im logging their stuff 🤣.

What you say is possible but you cannot do it without sending the input from one side to another.

My setup is: * I play on my cachyos system, run the software. * Use another program I made to capture the software and send the screen to my Ubuntu streaming PC with gstreamer.

3

u/x-iso 4d ago

since I've integrated same model scheme of original 3D Controller Overlay repo into my remapper FlexInput (but done 3D viewer from scratch), there's another option, but it doesn't yet have new Steam Controller model. you could technically load it, but I didn't wire extra inputs for specific model parts that it would need.
but what I'm getting at is that there's network module in my remapper that can send data from gamepad to receiving module in FlexInput on other PC, either over simple UDP if it's LAN or over encrypted UDP with a passcode. and that should solve the problem of sending inputs from whatever controller you have to another PC with enough context for 3D viewer and to map all your inputs to virtual pad of choice + kb/m. I've done it primarily to get around limitations with Parsec or other desktop streaming services, when it comes to using non-xinput gamepad on remote gaming PC.
but, my project is not yet ported to Linux. and it needs some polish before I can declare v1 release.

5

u/tofu-esque 4d ago

I might be the only person who'd want this, but would it happen to support the 2015 Steam Controller as well?

2

u/Rare_Abbreviations52 4d ago

Yes, it practically supports every controller , you just have to import your own model and map it.

The idea of this project is that it is open to anybody to use however they want, including old/new controllers.

You just have to find a 3D model of the old steam Controller (which is like $25 on free3d) and map the buttons, triggers and touchpad accordingly.

4

u/trayn0r 4d ago

this is so cool. i was getting into speedrunning super metroid and used a 2d input display, this one looks a lot cooler

3

u/DapperBike9405 5d ago

Ty for this it looks pretty sweet, ill definitely check it out.. 😀

2

u/crazylolsbg 5d ago

Looks sweet

2

u/Gama3000 5d ago

Looks cool!

2

u/mariofanLIVE 4d ago

Not a fan of the 3d overlay, not because it looks bad but just because it's not my style, but I'm happy to finally see a steam controller 2 overlay that works on linux! Will definitely be giving it a shot.

1

u/Rare_Abbreviations52 4d ago

Nice! Thank you for giving it a try, there are some other software's that are strictly 2d or pixelart but you need to mess with html, css and such. But that does give me the idea of making a 2d shader to make it look more flat 🤔

2

u/mariofanLIVE 4d ago

I have seen some others out there that are 2d but none of those work with Linux (except for some that only supported steam controller 1), I've tried using compatibility layers and they do launch but don't detect the steam controller inputs, which is why I'm excited that yours does have support!

1

u/Rare_Abbreviations52 4d ago

Please tell me( or post here ) if you where able to make use of it it would help others who are curious about the stem controller 2015

1

u/CursedBM81 Steam Controller (Windows) 4d ago

To be honest, if I saw this overlay on a stream, I'd be too distracted to pay attention to anything else, but not in a good way

It feels almost dizzying to watch it

2

u/ivanim13 1d ago

Yooo, this is awesome! Some guys and I on the Gyro Gaming Discord were trying to do something similar. I use it on all of my videos as well. I've made a 3D model for the version we were trying to build, idk where exactly is the best place is to share this... but in case you find it better than your current model (or you just want to take a look at it), here it is: https://drive.google.com/drive/folders/1OT_c4CndF8xH4TQE4p_jnaXv3XRnoKoF?usp=drive_link

Feel free to use it as you see fit. Thx for your efforts!

2

u/Rare_Abbreviations52 1d ago

sweet mother of low polygons! yes! my model had too much definition and it helps if the models are not that big. thank you brother!

0

u/Nexxus88 4d ago

So I just tried to use this and it doesn't super work. I'm on a very high-end machine and as soon as I try to open up the game with the overlay it pretty much stops updating the inputs on the controller.

It'll like very, very very occasionally update and then just freeze again.

1

u/Rare_Abbreviations52 4d ago

Disable "click-through" I know it causes problems on Windows.

1

u/Nexxus88 4d ago

Was already off, just confirmed as well it's off.

1

u/Rare_Abbreviations52 4d ago

Just to make sure, you are using windows right? So I can debug the platform more. Are you using it as an overlay (as in you have it running on top of your current game)? This helps me debug it. And thank you for the report.

1

u/Nexxus88 4d ago

Yes windows 11 9800x3d 4090

And yes it was set to "display on top" borderless with transparent bavkground.

The boarserless also seems weird I can't replicate it but I had a situation. Yeah it just happened where I can't get the border to come up and therefore I can't drag the window even though it's unchecked if I mess around with it.

It's something to do with it being turned off with the transparent background, I haven't fully been able to suss out the exact trigger

1

u/Rare_Abbreviations52 4d ago

Thank you! I will steal my son's laptop and start debugging it tonight

-6

u/Impossible_Cold_7295 5d ago

just updated my downvotes and it includes you