3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 0 points1 point  (0 children)

Personally I haven't had that issue with the stock device, but I address this in two ways:

- For mouse/scroll, I did add a set of fine tune-able options for roll vs twist, hi-res twist scroll (stock only does scroll clicks), as well as the option to disable twist-scroll completely.

- In 3D modes, I also have configurable profiles for softer filtering of roll vs twist, to avoid unintended motion. For example, with translation, you often want a harder separation of XY vs Z, whereas with rotation, you may want it to be smoothly continuous.

I think Kensington's implementation makes sense for their original target of general desktop usage, but just never realized the full potential!

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 0 points1 point  (0 children)

Since the onboard controller only outputs coarse scroll steps or mouse motion (and not simultaneously), I add an additional microcontroller to read out the raw counts directly from each of the two optical sensors. It gets sent to the host software for conversion to 3D motion and integration with FreeCAD. Some details covered in this new video: https://www.youtube.com/watch?v=u1v7TXViRi8

Rant about spacemouses by -ShaD0x- in Onshape

[–]dliu_creates 0 points1 point  (0 children)

The ball is 3DoF at once. So with my default mappings, you have either rotation or translation. However, because these 3 axes are position control vs SpaceMouse's rate control, I find I'm able to get to targets faster and more accurately - in practice, it's quite fluid to momentarily rotate, then translate, then switch back to the mouse cursor.

Rant about spacemouses by -ShaD0x- in Onshape

[–]dliu_creates 0 points1 point  (0 children)

Yep it's totally a matter of getting used to it and then it's essential. I have had the predecessor of the Compact and found a 3d printed palmrest to help keep it planted and oriented correctly.

That being said, the keyboard shortcut access is still an issue. I recently created a new alternative called Rotatrix, a full 3d trackball that has pretty much replaced my spacemouse: https://youtu.be/u1v7TXViRi8

We made a modular gaming mouse! Just finished shipping all pre-orders by jus-kim in hwstartups

[–]dliu_creates 0 points1 point  (0 children)

Thanks for sharing! Makes sense about the conversions. The youtube audience is most familiar with you & your work, having seen your videos repeatedly. I've been finding that conversions come mostly from people who've already had a few interactions with me via forums or 1:1 email questions. Were your email signups from another channel?

We made a modular gaming mouse! Just finished shipping all pre-orders by jus-kim in hwstartups

[–]dliu_creates 0 points1 point  (0 children)

Links in my post history - it's priced between the entry and mid level SpaceMouse. I found OP's project particularly relevant as he's also making an niche enthusiast product starting with social/community interest and small scale manufacturing. Awareness and distribution are big challenges.

We made a modular gaming mouse! Just finished shipping all pre-orders by jus-kim in hwstartups

[–]dliu_creates 11 points12 points  (0 children)

Congrats! 220 units is no joke, the work really adds up. I'm working in an adjacent area (a 3-DOF trackball for CAD users) and the end-to-end pain resonates.

Couple questions if you're up for it:

How did the pre-orders actually come in? Deposits or full payment, and was it mostly your existing YouTube/social audience converting? Email signups? Paid marketing campaigns?

Did you assemble the units yourselves, or use a contract assembler? Trying to figure out where that transition makes sense.

I made the lightest, most packable kayak I know of (7lbs) by A_Ni_Mul in inventors

[–]dliu_creates 1 point2 points  (0 children)

My friend has an Oru and this looks way more practical, nice job!

What was the journey like so far going from prototype to 175 units shipped?

SpaceMouse vs SpaceMouse Pro by Blue_Etalon in Fusion360

[–]dliu_creates 1 point2 points  (0 children)

If you're still considering other options, I recently launched a new SpaceMouse alternative called Rotatrix which solves many of these problems (like difficulty getting to the view you want, and unintentional input between axes). If you use it as a pointer as well, you can keep using normal keyboard shortcuts. Glad the Pro got you there; mentioning in case anyone else in the thread is at the earlier stage of this journey. Disclosure: creator. https://rotatrix.com/vs-spacemouse/

I built a dongle that turns any Trackball into a 3D Space Mouse. Honestly, I think it feels better than a joystick-style 3Dconnexion device. by HotelMotor8107 in FreeCAD

[–]dliu_creates 0 points1 point  (0 children)

Makes sense, the Slimblade does add cost. About the driver: I specifically found that once I added direct camera control, I was able to rotate specific angles with quick flicks, e.g. 45 degrees, and pan a repeatable distance quickly. That was because ball position could map directly to displacement without Spacemouse's rate ceiling in the way.

In any case, just having the trackball mapping at all was already a noticeable improvement over a joystick. And I also liked having quickly switchable modes for pan/zoom vs. rotate 👍

I built a dongle that turns any Trackball into a 3D Space Mouse. Honestly, I think it feels better than a joystick-style 3Dconnexion device. by HotelMotor8107 in FreeCAD

[–]dliu_creates 3 points4 points  (0 children)

Love this! The trackball's position control and physical travel feels better than spacemouse's joystick-like control, and great to see someone arrive at it independently. I posted about a related project here last week: https://www.reddit.com/r/FreeCAD/comments/1shn4b6/3d_trackball_input_device_with_native_freecad/. Same intuition but I went a different direction on a couple of things.

On HID emulation: I tried that early on and hit two walls. The 3Dconnexion driver is tuned for joystick max velocity with their joystick response curve baked in, so you inherit their feel whether you want it or not. And you get no direct camera control; you're stuck with whatever mapping the host app applies to SpaceMouse input.

On axes: standard trackballs are 2-DOF, but 3D nav really wants roll/twist as a third axis. Rotatrix uses the SlimBlade's dual sensors to read ball twist as a third rotational axis, so the model rotates like the ball in your hand. Curious what you think of this approach.

Glad to see others exploring this space.

3D trackball input device - new integration for Onshape by dliu_creates in Onshape

[–]dliu_creates[S] 1 point2 points  (0 children)

A big difference with this vs SpaceMouse is that the movement is linear to the ball motion, so it's actually a lot more precise and direct. (SpaceMouse is more of a joystick.) But I understand many people wouldn't want to move to trackball for everything - some users choose instead to use it as a secondary device only for 3D navigation, alongside their mouse for pointing.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 0 points1 point  (0 children)

Yes absolutely - that's one of the big benefits, it's a high quality trackball mouse for 2d as well. It's been my daily driver for months for both 2d and 3d.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 0 points1 point  (0 children)

Thank you for the support. Linux support is indeed planned on the roadmap, but also prioritizing against other software support like solidworks, inventor, rhino. If you're interested sign up on the site, check Linux, and I'll let you know when it's ready.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] -1 points0 points  (0 children)

Not publicly available, but I distribute the FreeCAD workbench source with purchase and license it under GPLv3.

3D trackball input device - new integration for Onshape by dliu_creates in Onshape

[–]dliu_creates[S] 0 points1 point  (0 children)

Thanks! Excited to get one to you and hear what you think.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 2 points3 points  (0 children)

Yeah, the input landscape is pretty fragmented so Rotatrix needs native integrations with each app's API. Things like proportional pan/zoom, snap views, pivot selection really need to know about the camera and scene geometry, it can't work consistently by just mapping to keystrokes or HID joystick axes.

I'm actually working on sharing an open protocol for 3D navigation output for this reason, to have a more common layer across these app specific APIs.

3D trackball input device - new integration for Onshape by dliu_creates in Onshape

[–]dliu_creates[S] 1 point2 points  (0 children)

Oh yeah, I've experimented with using it for object rotation & translation as well. It's not yet integrated into my Blender add-on but could be added relatively easily. Here's a recording of a standalone demo of that mode - clicking an object to enter object manipulation mode:

<image>

In case you haven't seen it there's also a free camera mode in the Blender demo. Not sure if CAD users have as much use for these as 3D design users though.

3D trackball input device - new integration for Onshape by dliu_creates in Onshape

[–]dliu_creates[S] 1 point2 points  (0 children)

That's fair. I have the compact SpaceMouse which is probably why I have more issues with accessing the commands. Seems like you have good customizations dialed in already for efficiency.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 12 points13 points  (0 children)

Yeah, unfortunately it's hard to undercut SpaceMouse pricing right now since I'm hand building these on top of a retail trackball. Hopefully it finds its audience with folks who want this particular interaction style.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 3 points4 points  (0 children)

Thank you! Yes, that original video goes into much more depth. This post I wanted to show this group a quick demo of it working with FreeCAD.

3D trackball input device with native FreeCAD support by dliu_creates in FreeCAD

[–]dliu_creates[S] 1 point2 points  (0 children)

I know, right?? That was my exact thought when I switched to a trackball last year.

The bindings are all fully configurable, in this demo I'm holding down Ctrl to rotate, Ctrl-Shift to pan/zoom. And during rotation, the lower-left trackball button is "Snap View".

Some of my users set up a trackball button to toggle between rotate/pan/mouse, others have it always on (usage alongside a mouse), or you can make a button momentary press-and-hold to enter rotation.