You are browsing as a guest. Sign up (or log in) to start making projects!

experimoza

  • 4 Devlogs
  • 11 Total hours

AI-Powered Force Feedback Generated from Any Image

Ship #1

welp, experimoza is finally shipped :wowzers:

experimoza takes an image, sends it to gemini, and turns it into a 10-second force feedback scene for a racing wheel. instead of only vibrating, the wheel actually pulls, moves, changes direction, resists you, and tries to match the feeling of the picture.

the most challenging part was working with directinput and making all the effects behave properly together. i also spent a lot of time rewriting the prompt because the generated scenes were either too similar or just made the wheel stand still and vibrate :skull:

i'm really proud that this stupid idea actually works and you can literally feel a picture through a steering wheel. i'm also quite happy with the ship deck ui, the live oscilloscope, and especially the furious pirate i painted in microsoft paint :loll:

to test it, you need windows, python 3.10+, a directinput-compatible force feedback wheel, and a gemini api key. install the dependencies, put your key into `.env`, run `ui.py`, drop in an image, and press **FEEL THE IMAGE**.

it was built and tested using my moza r3. please start carefully because the wheel can move unexpectedly. there is a **PANIC STOP :0** button for a reason.

  • 4 devlogs
  • 11h
  • 13.08x multiplier
  • 148 Stardust
Try project → See source code →
Open comments for this post

4h 41m 20s logged

FINAL devlog #4

changes in UI, prompt review


let’s talk about UI first, this is a complete revamp :wowzers:

  • i’ve changed the theme from the default custom tkinter one to brown. i wanted my app to look like a ship deck.

  • changed button layout a bit

  • next i’ve written the oscilloscope using tkinter canvas. it shows the amount of force the app applies using different effects.

  • also the pirate part was changed. i’ve added the “ay carumba” text for shits and giggles. furthermore, now pirate and the helm is one sprite. pirate becomes furious now if he spins too quickly. i’ve painted the sprite in Paint:loll:

  • painted an icon too. guess how?

now a bit of a technical part

  • reworked the prompt completely, chatgpt helped me tbh. now it generates very different scenes

  • wrote nice readme.md and finalised the repo

1
1
190
Open comments for this post

2h 26m 22s logged

devlog #3

i’ve implemented first UI for this piece of software and found my “mascot”

this was not that easy LOLLLL:cryin-anim:


this is my first time dealing with UIs in python. first, i tried to get familiar with pyside6, but after 40 minutes i understood that i’d need hours, days or even week to fully understand it. then i started looking for more beginner-friendly alternatives and found ctk or custom tkinter. it was much easier to understand and chatgpt codex helped me find my mistakes a lot :p


as a result we have:

  • usable UI

  • every part of my project in one place

  • funny pirate with a helm that moves exactly like your irl wheel

  • appropriate theme


i guess that tomorrow i’ll change my theme to something brown, i want experimoza to look like a ship deck haha. + some debugging with chatgpt sol, if i’ll have access to it. after that i think we are ready to ship :woooo::woooo:

0
1
31
Open comments for this post

1h 52m 47s logged

devlog #2

well this is my first normal devlog, so probably i’ll describe what my project does again. experimoza turns a photo into a 10-second AI-generated force-feedback scene for a racing wheel. it uses gemini to translate the image’s mood and texture into physical wheel motion, so you can literally feel a picture through the steering wheel.
btw experimoza comes from the word “experience” yk??


i’ve switched from moza sdk and c++ to py_directinput_ffb, which is a python binding for Direct Input Force Feedback (FFB) using ctypes and comtypes by Wanjie Sun, big shoutout to him.


in the previous version gemini 3.1 flash lite was just creating json file with the description of conditions, which resulted in a looped boring ffb. now instead of creating bland and boring force feedback, it writes python code and thinks of it as a “poem” in force feedback. feels much more fun and creative to use.


i also made the ai ffb generation process reusable by turning it into a function, so i can plug it into a ui later


my next move is probably learning something about how python ui is made. like pyqt6 or sum.

0
1
23
Open comments for this post

2h 18m 8s logged

hey, i’m building a very fun thingy. you upload a photo into an app, ai processes it. then it creates force feedback description which is later made true by C++ script. i’ve posted the first version that is not really good, but we all start somewhere, don’t we?

0
1
19

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…