DAXS Plugin - Gamepad Support for Rhino

Hey Rhino Community & McNeel Team,

I would like to introduce a little hobby project of mine: The Daxs Plugin for Rhino.

Daxs Logo Daxs

Daxs brings gamepad support to Rhino, so you can navigate your model in a way that feels intuitive, and surprisingly natural. At least when you grew up playing video games, like me.

(Video will be replaced with a better one)

WHY

Why not? I have a lot of old game controller flying around at home and I needed a nice “after work” project.

Right now I am working with larger architecture models in Rhino, and especial navigating in tight spaces can be a little bit awkward.

There are already some great solutions, like STORK or other Hardware like 3D mouses. But I started wondering about another option: game controllers.
They are affordable, easy to use, and a lot of us already have one lying around at home.

And that is where Daxs ([ Da’ks ] - “Dachs” - German for badger) came from: The idea of turning a gamepad into a simple navigation tool for Rhino.

Quick Overview of the Main Features

So, what can you actually do with Daxs?

  • Fly Mode - fly through your model

  • Walk Mode - walk through your model, or a plane - depending if a navigation mesh is selected. (first-person view)

  • Adjust speed via buttons

  • Change the camera lens dynamically, and trigger Rhino Commands like RenderToViewport directly from your controller.

Daxs is built around 4 fundamentals.

1. Rhino First

Daxs runs in the background without getting in the way of your normal Rhino workflow.
If the gamepad is not being used, Daxs goes into a hibernation state, so it is not wasting resources.

2. Plug and Play

If your controller is already recognized by Windows, either through USB or Bluetooth, you are basically ready to go. Start Rhino, turn in your favorite controller and Daxs does the rest.

Under the hood, Daxs uses the Simple DirectMedia Layer 3.0 library or in short SDL 3, which means it supports a very wide range of devices - in theory.

That includes Xbox controllers, PlayStation controllers, Nintendo controllers, many third-party gamepads, and even more unusual devices.

The only real requirement right now is that the controller should have two analogue sticks, because that is essential for proper movement and camera control.

3. Customization

You can reassign buttons, adapt controls, and add your own custom commands to the controller setup.

4. Open Source

Daxs is released under the MIT License, which means the source code is openly available via GitHub.

Dax Wiki

How to get started
Changelog
Performance

Feedback

Any comment or feedback is welcome!

And of course it is a super early public version - so expect some bugs.

Greetings,
Leon

(I will update the first page as new updates come by.)

8 Likes

Be nice if this also supported keyboard & mouse (aka first person shooter) navigation. Rhino is lacking a good walkthrough mode.

1 Like

This is Stork solution, the picture below was taken from stork food4rhino page.

1 Like

Thank you for the comments. With Stork, there is already a solution out there to do those things. I, personally would like to focus first on features, which are not available on food4rhino. While it would take me not so much time to make the viewport camera work, integrating mouse + keyboard movement without interfering with Rhinos Workflow is another thing. And just copying someones else work would not make me feel better - besides the legal implications for me.

Besides that, you have already a first person walkthrough mode in Daxs - just with a gamepad. :slight_smile:

2 Likes

I would like to give a suggestion, if possible, to add a command to save the view/camera position and another to cycle/teleport between them.

This way, lets say we are using it to present a building to a manager or client and they have some comment to add about something and we can just press a button to save the camera to get back to that later.

Or even save camera positions for rendering later.

1 Like

You can already cycle between Named Views via a Button. I just did not mention it. The “Save View as Named View“ Action is a great Idea. I created an Issue in GitHub. Thank you.

2 Likes

I added the SaveNamedView action/command in the current test build (0.2.4), @altamiro.aj
It seems to be working well so far.
The Name of the view has to be still typed with the keyboard.
I am not seeing any advantage to add a virtual one. Overwriting a view works just with gamepad though.

I also added a small controller overlay to the HUD, so it is easier to see what is happening with the gamepad.

Maybe just make so it has a standard name with timestamp or basic counting ? So the user doesn’t have to drop the controller to type, just so it doesn’t break the workflow :slight_smile:

1 Like

Yeah - i thought about it. While I am not adding so many Named Views in a project - overwriting one is a common thing for me. So the focus right now is to update a named view. Maybe I will add another eto button for creating one with a timestamp. Thank you for your comment.

1 Like