Rozhovor s Intiface Haptic Engineer

Nedávno jsem si znovu četl svůj rozhovor s webovým vývojářem PornHub a začal jsem přemýšlet nad otázkou VR a myšlenkou přimět uživatele, aby nejen viděli, ale i cítili` něco. Haptická zpětná vazba her VR je to, co je skutečně odlišuje od vaší standardní hry pro PC nebo konzole. Takže pokud jde o sexuální technologie, jaké to je vytvářet zážitky, které cítíte, místo abyste je viděli? Měl jsem příležitost udělat rozhovor s Kylem Machulisem, aka qDot, o kódování haptických zážitků, které lidem dávají dobré vibrace. Užijte si to!

Upozornění:Tento příspěvek na blogu podrobnosti kódování pro sexuální hračky a další konverzace pro dospělé. Pokud by vás tato témata mohla urazit, přestaňte číst.

Jaká byla původní inspirace projektu buttplug.io?

Původní inspirace je hlavní inspirací i dnes:Nechat lidi s těmito schopnostmi stavět, co chtějí, pro počítačem řízený sexuální hardware, který vlastní.

Ve skutečnosti jsem neměl konkrétní výklenek nebo komunitu, na kterou jsem se tímto zaměřil, spíše jsem chtěl lidem z cesty dostat nudné programovací věci, aby se mohli dostat k vytváření toho, co je zajímá, aniž by museli naučte se výstřednosti multiplatformního Bluetooth/USB/atd, ujistěte se, že je správně připojeno k síti, a to vše…

Zaváhali jste při pojmenování tak stroze? Bylo jméno pro projekt čistým kladem nebo záporem?

Vtipné je, že původní název projektu byl Fuck Everything. Několik lidí mě z této konkrétní římsy přemluvilo, většinou se zdůvodněním „nikdy o tom nebudete moci snadno mluvit v médiích nebo na to odkazovat“.

S ohledem na to jsem stále chtěl něco slušně sprostého, takže jsem do toho šel Buttplug (také jsem natočil video o této úvaze:https://youtu.be/c6bghuCy6d8). Bylo a stále je to určitě riziko, ale jaké mám alternativy? Mohl bych jít s něčím neškodným, co by fungovalo, ale bylo by to docela nudné (a to jsem udělal s Intiface, názvem aplikační řady, která je umístěna na Buttplug, abych ji mohl používat v obchodech s aplikacemi) . Vzhledem k tomu, že Buttplug je název knihovny a bude ho většinou používat vývojáři („zabudovaný“ do svých programů, jak to bylo), připadalo mi to jako bezpečné místo, kde můžete být trochu hloupí.

Jaký byl cíl na začátku projektu a jak se projekt dostal tam, kde je dnes?

Cíl jsem uvedl v otázce inspirace, takže se toho budu držet. Pokud jde o měření dosahu projektu, mám pocit, že to nejlépe ukazuje náš seznam „Úžasné“:https://awesome.buttplug.io.

Zde se snažím držet krok s naší komunitou ve výpisu všeho, co pomocí knihovny vybudovali. Většina soustředění se obvykle týká synchronizace her nebo filmů, ale kolem toho se vyrojily nejrůznější projekty a každý měsíc slyšíme o nových. Samotné šíření typů projektů je to, co pokračuje.

Jaké z technického hlediska jsou některé z charakteristických technologií a nápadů za projektem?

Snaha přijít s jakýmsi „společným technickým jazykem“ pro intimní haptiku je velká část technického zaměření. To je SUPER obtížné a už jsme se vydali několika špatnými cestami, ale věděl jsem, že to bude dlouhý kurz zdokonalování a neřekl bych, že jsme se dostali příliš daleko, zvláště vzhledem k množství projektů. již implementováno pomocí knihovny.

Také jsme nakonec museli implementovat většinu naší vlastní knihovny Bluetooth LE (https://github.com/deviceplug/btleplug), i když mám štěstí, že ekosystém Rust nám také poskytuje to, co potřebujeme.

A konečně, schopnost prezentovat projekt lidem na jejich půdě (programovací jazyk/platforma) místo našeho je neustálou výzvou. V současné době dodáváme hlavní knihovnu v Rustu s vazbami v C#, Javascript/WASM, Java a Python a lidé vytvořili vazby pro jazyky jako Haskell a Go. Je velmi důležité, aby lidé mohli k této práci přistupovat bez ohledu na to, jak jim to vyhovuje, oproti tomu, aby se museli učit jiný jazyk, takže návrh musí zůstat dostatečně flexibilní, aby fungoval v různých technických kontextech.

Jaké jsou některé klíčové technické termíny, které je důležité znát?

  • Haptika – studium dotyku
  • Hmatová zpětná vazba – používání hmatu k upozornění uživatelů na události nebo jiné situace
  • Rumble – Jak běžně diskutujeme o zpětné vazbě na videohry, s motory v gamepadu
  • „HD“ Rumble/Haptics – Nedávný vývoj v oblasti haptiky pro spotřebitele, většinou v novějších herních ovladačích (Switch Joycon, PS5 DualSense, VR Controllers), které používají malé ovladače, které dokážou rychle měnit rychlost a rozšiřují haptický slovník mimo rachot na věci jako klepání, klepání atd…
  • Teledildonika – Původní termín (jak jej vytvořil Rheingold) se vztahuje k sexu na dálku mezi dvěma lidmi, ale v současnosti se tento termín používá volně k označení sexuálních pomůcek, které mohou obecně komunikovat s počítači nebo je ovládat.

Jak se změnil váš technologický přístup od začátku projektu do současnosti? Jak se jednotlivé jazyky (JavaScript, Rust atd.) v průběhu času zlepšily, aby byl projekt lepší?

Zde je rychlý časový plán implementací:

  • 2013:Vyzkoušeli jsme jednoduchou implementaci v Pythonu, ale nedotáhli to příliš daleko, protože nebylo k dispozici mnoho hardwaru a podpora bluetooth byla všude sporná.
  • 2016:Vyzkoušel jsem Rust, ale bylo příliš brzy a budu muset implementovat příliš mnoho od základů. Tokio bylo v té době asynchronní volbou, ale jeho použití bylo poměrně komplikované a byl jsem zvyklý na asynchronní struktury v jiných jazycích (JS/C#), takže to prostě nešlo dobře.
  • 2017:Přesunuto k vyzkoušení implementace v C#, abychom mohli podporovat okna s jejich novými rozhraními UWP Bluetooth API (která vyšla v dubnu 2017). To fungovalo opravdu dobře, ale také nás to připoutalo k Windows a C#, a i tehdy jsem byl v Rustu opravdu pohodlnější a chtěl jsem systém plně napříč platformami.
  • Později v roce 2017:Přidán Buttplug JS, protože jsme měli k dispozici WebBluetooth/WebUSB/WebGamepad. Jednalo se o zcela oddělenou implementaci od C#, protože WASM ve skutečnosti ještě nebylo.
  • 2019:Konečně se omrzelo udržování souběžné implementace C# a JS, Rust se chystal vydat async a WASM začínal vypadat dobře, takže začal vývoj na 3. verzi Buttplug v Rustu, přičemž stále udržoval C#/JS.
  • 2020:Najednou jsem měl doma HODNĚ volného času, takže implementace Rustu během roku pokračovala. Do konce roku jsme nejen měli implementaci Rust, ale C# pracovalo v podstatě se stejným API nad Rustem a Rust bylo také možné kompilovat téměř přímo do WASM, což znamená, že jsme měli asi 95 % stejný kód, který podporuje všechny implementace různých jazyků
  • 2021:Úplně přesunuto do Rustu, kde jsme dodnes.

Jak se váš kód dostane od nezpracovaného zdroje ke kompilaci a poté na zařízení? Jaký je proces testování a ladění?

Za prvé, zde opravdu není „na zařízení“. Knihovna není firmware, je to software vytvořený pro aplikace, se kterými mohou komunikovat nebo se integrovat. Naším úkolem je propojit s jakýmkoli firmwarem, který již může být v zařízení, ale nespecifikujeme, že určitý firmware být tam. Implementujeme protokoly pro mnoho různých značek a také několik open source/DIY systémů (jako je T-Code, odvozenina podobná g-kódu pro hračky vytvořená jiným projektem DIY komunity:https://stpihkal.docs.buttplug.io /protocols/tcode.html).

Pokud jde o kompilaci/distribuci, je to jen software, jako každý jiný, takže tam není nic zvláštního. Všechny naše knihovny a aplikace procházejí CI (v tuto chvíli mix Azure nebo Github Actions), všechny naše aplikace jsou podepsané (takže lidé mohou alespoň trochu věřit, že pochází od nás) atd…

Podporujeme více platforem (Win/Mac/Linux/iOS a doufejme, že brzy Android) a jazyky (základním systémem je Rust, ale existují podpůrné knihovny v C#, Javascript/Typescript (přes WASM), Python, Java, Haskell, Lua , a seznam pokračuje, buď psaný mnou, nebo komunitou), takže balení těch se také odehrává na CI.

Ladění a testování je... obtížné, protože v tuto chvíli podporujeme více než 20 značek hraček plus projekty pro kutily a každá z těchto značek může mít více než 10 hraček. Celkově (od IOSTIndex, webové stránky se seznamem všech známých počítačově řízených hraček:https://iostindex.com/?filter0Availability=Available,DIY&filter1Connection=Digital&filter2ButtplugSupport=4), knihovna aktuálně podporuje 247 hraček.

Rád bych měl robustnější testovací systém pro hardware, protože si myslím, že i testování hardwaru by se dalo zautomatizovat opravdu zajímavými způsoby vytvořením falešných zařízení, která stále používají skutečné komunikační sběrnice Bluetooth/USB/atd. byl to projekt, který mi unikal, když jsem neměl čas ho dát dohromady.

Je zřejmé, že nemůžeme otestovat VŠECHNY z těchto přibližně 247 hraček na každém vydání, protože knihovnu většinou vyvíjím já a možná 1-2 další lidé, kteří pomáhají s trochou kódu nebo QA. Snažíme se testovat nejoblíbenější značky, jako je Lovese a Kiiroo, a závisíme na hlášeních uživatelů o chybách a aktualizacích o poškození. Discord server (https://discord.buttplug.io) byl pro to fantastickým zdrojem, protože kolem knihovny se vytvořila velmi angažovaná komunita. Často se u nás objevují lidé s hračkami, které jsme dosud nemohli získat, a můžeme s nimi na dálku pracovat na získání podpory integrované do knihovny, někdy dokonce dříve, než ji obdrží kterýkoli vývojář knihovny.

Co by mohl každý programovací jazyk přidat, aby byl buttplug.io lepší?

  • Rust nám dává základ v bezpečí. Potřebuji se cítit dobře, když vydávám projekt, který ve skutečnosti funguje vícevláknovým způsobem, zatímco je v tělech lidí.
  • JS/WASM usnadňuje prototypování VELMI rychle a dočasně, protože lidé mohou hrát s Buttplug zcela v prohlížeči. To znamená, že pokud nechtějí kontrolovat git repo nebo mít na svém počítači jiné věci, které by mohly být považovány za usvědčující (pro nedostatek lepšího výrazu), mohou prostě udělat něco v glitch nebo jsfiddle nebo cokoli, a přesto plné hardwarové ovládání
  • C# je nyní naší branou ke hrám, konkrétně pro Unity. Máme plugin Unity a také úplnou knihovnu C# a je tam mnohem více vývojářů než pro Rust, takže to rozšiřuje použití.
  • Totéž s Pythonem. Pro lidi je rychlé a snadné vytvářet prototypy věcí a ví to více lidí.
  • Jediný důvod, proč plánuji udělat C++, je momentálně podporovat Unreal. :)

Kdo jsou některé z organizací, které využívají váš projekt? Proniklo vaše dílo do mainstreamového filmového průmyslu pro dospělé?

  • https://xtoys.app používá naši knihovnu pro část své hardwarové integrace (ačkoli podporuje více typů hardwaru než my!)
  • ViRo Playspace používá naši knihovnu pro přístup k hardwaru a je distribuován ve službě Steam!
  • Podílíme se také na několika hrách financovaných Patreonem, jako je Heat a FarmD

Pokud jde o filmový průmysl, naše knihovna se hodně používá pro „synchronizaci filmů“, což je komunitní snaha vytvořit skripty, které synchronizují hardware s filmy. Hlavním místem pro to je https://eroscripts.com, ačkoli existují také společnosti jako SexLikeReal, které provádějí hardwarovou synchronizaci.

Jedním z problémů většiny open source projektů je financování a monetizace – jak se monetizace promítla do projektu v průběhu let?

Strávil jsem téměř rok vyhodnocováním a zkoušením různých strategií, abych mohl v knihovně pracovat na plný úvazek, ale nakonec, i když se některé z nich zdály životaschopné, nakonec jsem přišel na to, že to ve skutečnosti není něco, co jsem chtěl dělat. Jsem rád, že si Buttplug ponechávám jako vedlejší projekt. Je to však stále drahý vedlejší projekt, takže se snažím, aby nějaké peníze přicházely na financování strojů a výzkumného hardwaru.

Většina finančních prostředků pochází ze 3 zdrojů:

  • Crowdfunding:Používám sponzory patreon (https://patreon.com/qdot) a github (https://github.com/sponsors/qdot), ačkoli patreon tvoří více než 90 % této strany příjmů. Nabízím úrovně, kde mohou dárci dostávat týdenní aktualizace, nálepky, videokonference 1 na 1 atd.… Byl to opravdu dobrý způsob, jak se zapojit do komunity
  • Affiliate partneři:Ukázalo se, že společnosti zabývající se sexuálními hračkami vám zaplatí za prodej hraček pro ně, a protože knihovna ve skutečnosti neexistuje bez hraček jiných společností, je to nakonec také docela dobrá strategie zpeněžení pro projekt. Také mi to umožňuje navazovat partnerství se společnostmi, což jsem předtím moc nedokázal, protože mnoho společností považovalo Buttplug za něco, co spíše ubírá příjmy, než přivádí nové uživatele.
  • Poradenství:Díky všem zkušenostem, které jsem získal s Buttplug a prací se sexuálními technologiemi po všechna ta léta, mohu nyní konzultovat inženýrství, UX atd. v oblasti sexuálních technologií pro společnosti v oboru. To, co knihovna dělá a co naše komunita buduje, je stále daleko před tím, co většina společností vidí od svých uživatelů požadovat, takže spolupráce se mnou jim umožňuje plánovat, jak může vypadat budoucnost.

Ve vašem seznamu brzy podporovaných zařízení vidím různé herní ovladače. Musím se zeptat ... jaká je poptávka po podpoře v těchto typech zařízení?

Ve skutečnosti nejde ani tak o poptávku, jako spíše o potvrzení dostupnosti. Gamepady s duněním jsou snadno nejrozšířenějším typem počítačem řízených vibrátorů. Podpora herních ovladačů, které vibrují, znamená, že:

  • Vývojáři mohou mít na stole něco, co není hračka k testování
  • Uživatelé mohou vidět, jaké programy používají Buttplug, než skutečně utratí peníze za hračku.

Takže je to výhra pro obě strany komunity

Existují nějaké zdravotní závazky, které musíte u svého projektu zvážit? Mohla by chyba někomu způsobit fyzickou újmu?

Určitě a je to něco, čeho se snažím zůstat vědomý. Snažím se podporovat pouze hračky, které nepředstavují jasné nebezpečí pro uživatele, takže zatímco s vibrátory a tahači jsme v pohodě, snažíme se držet dál od věcí, jako jsou obojky, elektrostimulace atd. Pracuji také na nastavení které umožňují uživatelům nastavit maxima pro výstup hraček, aby mohli přizpůsobovat funkce svým vlastním potřebám.

To je také důvod, proč je knihovna open source, takže pokud lidé nemají pocit, že mohou něčemu na její tváři věřit, jsou více než vítáni, aby se podívali dovnitř nebo se mě zeptali. I když je projekt open source, jsem také velmi opatrný, pokud jde o přijímání jakýchkoli PR a vyžadujem nejprve obrovské množství prověřování. Máme tolik lidí, kteří opravdu chtějí pomoci s knihovnou, ale nikdy ji nepoužili, nebo ještě hůř, říkají „Ach ano, rád bych se naučil [sem vložte programovací jazyk] tím, že přispějí“ a vždy se musím zeptat „Udělejte věříte, že váš právě naučený kód je v tělech lidí“? Opravdu bych si přál, aby více lidí na tuto otázku řeklo „ne“, heh.

To znamená, že mohu udělat jen tolik, protože uživatelé si se systémem budou dělat, co chtějí, takže přidám ochranná opatření, která mohu, nechám jej zkontrolovat zabezpečení a snažím se, aby byl konfigurovatelný tak, jak uživatelé potřebují, aby mohli cítit se také v bezpečí.

Jak se projekt od počátku rozrostl? Jaká je přítomnost komunity?

Projekt zplodil další projekty (https://iostindex.com je provozován někým, kdo také pracuje například s Buttplug, a všechny věci jsou na https://awesome.buttplug.io, mnohé s vlastními komunitami), má to discord server s tisíci uživateli a vedl jsem o něm živé workshopy. V dnešní době je těžké získat představu o tom, jak přesně to všechno je, protože je to prostě tak široké a také proto, že to všechno nevidím. Vzhledem k tomu, že je to open source a je zdarma, a já ve skutečnosti moc nesleduji, někdy se prostě objeví na místech, kde to neočekávám, nebo se dostanu do diskuzí na místech, o kterých jsem ani nevěděl, že existují.

Jaký je váš typický pracovní den?

Nepředstavitelná nuda. Stejné inženýrství jako většina míst, jen s jiným kontextem. Obvykle ladím datové struktury nebo zjišťuji problémy s UX nebo cokoli jiného, ​​a to vše obklopené erotickými hračkami, na které se shromažďuje prach, nebo které se zapnou pouze za účelem provádění testů kouře před vydáním.

Zábavné dny jsou ty, kdy se rozhodnu udělat něco hloupého se všemi těmi svinstvami, které jsem vytvořil. Minulý týden jsem například udělal rychlý mod Elden Ring, aby hračka zavibrovala pokaždé, když hra zavibruje ovladač. Technika tam nebyla příliš (zde je vysvětlující článek), ale sledovat reakce na sociálních sítích je zábavné a končím v konverzacích, které jsou většinu času překvapivě pozitivní.

Je nějaké stigma, když řeknete přátelům, rodině a známým, že pracujete na technologii hraček pro dospělé? Váháte, když říkáte lidem, na čem pracujete?

Pro mě osobně vůbec. Pracuji v sexuální technice od roku 2004 a celou dobu jsem používal své skutečné jméno a identitu. I když to v minulosti na některých místech způsobilo potíže, celkově mi to poskytlo další úroveň důvěry. Lidé vědí, kdo jsem, vědí, odkud projekt pochází, a já mám tu čest se o to podělit, což je u tohoto druhu technologie vzácné. Existuje mnoho autorů softwaru pro sexuální technologie, od kterých se z různých důvodů vyžaduje, aby zůstali v anonymitě, a to je v pořádku a pochopitelné, ale chtěl jsem být ve skutečnosti venku a dostupný o tomto tématu, když jsem viděl, že mám šanci, a je to se opravdu vyplatilo.
To znamená, že to není něco, co přichází zdarma. Musím strávit obrovské množství času „kurátorem své značky“, protože chybí lidštější termín. Představení projektu jako etického a sex-pozitivního zahrnuje spoustu myšlenek, a to natolik, že tomu je věnována celá část našeho průvodce pro vývojáře. Protože je to také v mém životopisu/cv/LinkedIn/atd., musím neustále přemýšlet o tom, jaká je vnější perspektiva projektu, a snažit se udržet tvar toho, co chci.

Konec rozhovoru

Na vytváření haptických zážitků je něco opravdu zajímavého. Vždy jsem tolik spoléhal na to, jestli něco vypadá dobře, ale poznat, kdy jste vytvořili skvělý haptický zážitek, musí být neuvěřitelně těžké. Pak přidejte počet zařízení, která chcete podporovat, uživatelské preference, počet prodejců a stigma, které práce někdy přináší, musí to být výlet. Obrovské díky Kyleovi za sdílení jeho pohledu a zkušeností!