Skip to forum
Beta Test: ART/GTO ...
 
Benachrichtigungen
Alles löschen

Beta Test: ART/GTO Solver & Viewer

17 Beiträge
6 Benutzer
37 Reactions
964 Ansichten
aaaRt
Joined: 15.08.2007

Direkt zur Web-Version / Test: https://www.artgto.com/try kein download, kein nix!

Disclaimer: PokerStrategy.com ist nicht mit den folgenden Inhalten assoziiert und ist für die folgenden Inhalte, die Inhalte auf artgto.com, für die Software und die Viewer App ausdrücklich nicht verantwortlich. Bevor ich den Post erstellt habe, habe ich Sven/das Mod-Team um Erlaubnis gebeten, die mir auch erteilt wurde.

tl;dr
Ich habe einen GTO Solver & Game Tree Viewer programmiert und suche 10 Beta-tester. PokerStrategen haben absolute Priorität. Meine Grundiee war: Ich finde GTOWizard cool aber habe keinen Bock monatliche Abogebühren für etwas zu zahlen, was ich gar nicht in dem Umfang nutze. Ich hab erst den Viewer gecoded und dann festgestellt, dass ich die Game Trees aus meinem Solver (in dem Fall SimplePostflop) gar nicht komplett exportieren kann. Daher habe ich angefangen an meiner eigenen Lösung zu arbeiten und beschlossen selbst einen Solver zu coden. Die Mathematik (die verschiedenen Algorithmen) sind öffentlich zugängliches Wissen.
Website: ARTGTO
Discord: Click Here
YouTube: @ARTGTOCOM

Moin zusammen!

Vielleicht kennen mich einige noch aus meiner aktiven Pokerzeit. Ich bin aaaRt, mittlerweile 39 Jahre alt und habe viele sehr gute Jahre hier im Pokerforum verbracht und mehrere Blogs betrieben. Natürlich hat es sich bei den Blogs immer alles um Poker (und ein bisschen Lifecontent) gedreht und ich habe hauptsächlich von meinen Tilt-Eskapaden, Chasing Sessions auf NL200 und den gelegentlichen Ausflügen auf NL500 zoom berichtet ;). Das ist mittlerweile nun schon einige Jahre her und die Grindertage liegen schon weit hinter mehr. Wirklich aktiv, bis auf gelegentliche Sessions, spiele ich seit ~2017 nicht mehr und mit dem GlüStV, zu dem ich ja auch schon viele Beiträge geschrieben habe, ist das Kapitel Poker als Spieler ist für seit einiger Zeit einfach abgeschlossen. Nichtsdestotrotz bin ich immer an Pokerthemen dran geblieben und habe zumindest so weit es ging, die Entwicklungen am Markt mitverfolgt, neue Tools ausprobiert, hier und da auch mal wieder gespielt, entweder live oder online im Ausland und mir dann auch immer wieder meine Strategien in GTO Solvern angeschaut. Was mich allerdings immer sehr gestört hat war, dass ich nie ein wirklich passendes Produkt gefunden habe, das zu meinen Bedürfnissen gepasst habt. Gepaart mit meinem Interesse am Programmieren habe ich vor ~3-4 Jahren (vor der ganzen AI Welle) in Eigenregie mehr schlecht als recht study-tools gebaut, die genau meinen Bedürfnissen entsprachen aber vor allem eins waren: Unausgereift.

Nach paar Jahren development bin ich aber jetzt an einem Punkt, an dem ich mit meiner Produktpalette ziemlich zufrieden sind und euch vorstellen möchte: Den ART/GTO Solver & ART/GTO Viewer - Zwei tools, die Hand-in-Hand arbeiten und es euch ermöglichen a) GTO-Strategien zu berechnen und b) sie dann super schnell in einer lokal gehosteten WebApp zu browsen

Wat is dat janze?
Zunächst ist ART/GTO Solver erst mal ein "stinknormaler" Solver, der eines so gut kann wie andere Solver auch: GTO-Simulationen. Es fehlen ein paar Funktionen, die ihr von Pio, GTO+, SimplePostflop gewohnt sein werdet (Node-Locking, Aggr. Reports, Class breakdowns), an einigen davon arbeite ich bereits aber das sind recht große Entwicklungsblöcke, die ich nach der Beta angehen möchte.

Zum Solver "gehört" eine maßgeschneiderte WebApp, der ART/GTO Viewer. Die wird entweder über python oder über npx http-server -p 8080 auf eurem PC gehostet und ermöglicht es euch, die Spots, die ihr mit dem Solver gelöst habt in einer schönen, schnellen UI zu browsen. Wie das ganze als End-state aussieht, seht ihr hier:

Ich will hier mal paar Features highlighten:
Solver:

- ART/GTO Solver hat eine eigene GTO-engine: Mit einem getunten HS-DFCR algo. Von der Geschwindigkeit her kann der Solver mit anderen kommerziell erhältlichen Solvern mithalten
- Minimalistische, übersichtliche UI: Ich habe viel Zeit investiert, um die UI so benutzerfreundlich zu machen wie möglich.
- Job setup und Multi-Job setup: Ihr könnt ganze Jobs erstellen ohne jede einzelne Range festlegen zu müssen, ART/GTO's multi job viewer ist in der Lage anhand einer minimalen Selektion (Pot Type, Board-Anzahl, Betsizing-Profile) die Ranges für die existierenden Positionspaare zu parsen und selbst die entsprechenden Spots zu erstellen. Wenn ihr die zugrunde liegenden Infos habt, könnt ihr innerhalb einer Minute ein Job setup für jeden Pot-Typ (srp, 3bp, 4bp) erstellen und dann durchsolven. Von euch braucht's dann keinen weiteren Input
- Batch-export: Sobald ihr die Solutions habt, könnt ihr alle auf euren PC exportieren

Viewer:

- Einfach mal ne gute UI
- Locally hosted .html webapp, die Daten gehören euch für immer
- Nutzt flop-mapping und suit-transformation: Es gibt 1,755 "strategically unique" flops. In der Regel möchte man nicht alle solven, weil das a) lange dauert und b) extrem viel Speicherplatz benötigt. ART/GTO liefert dafür verschiedene presets an Flop-subsets (25, 74, 184), die ihr stattdessen solven könnt und die repräsentieren dann gewissermaßen die Lücken (also boards, die es gibt, ihr aber nicht löst). Der Viewer kennt das entsprechende mapping, d.h. bei jeder Eingabe liefert der Viewer immer die Lösung für ein neighboring board, bei dem die Strategie ähnlich zu der ist, wie auf dem Board, das ihr eingegeben habt / euch anschauen wollt.
- Suit-transformation: Bei den Flop-subsets wird immer nur eine Suit-variation eines Boards gelöst z.b. 2:h 3:h 9:d aber nicht 2:c 3:c 9:s -> Die Strategien sind auf beiden boards natürlich identisch, weswegen man es auf eine Variation reduziert. Der Viewer nutzt suit-transformation, so dass bei jeglicher Eingabe die Equities und Strategies entsprechend der User-Eingabe umgemappt werden. Reduziert Aufwand :)
Keyboard Shortcuts: Damit ihr super den gewünschten Spot trainieren könnt, könnt ihr per keyboard shortcuts zu den entsprechenden Lösungen navigieren (z.B. 345932hhd -> 3BP SB vs BU 932hhd board)

Weitere features (beide tools)

- GTO preflop ranges sind pre-packaged
- Betsize profile sind ebenfalls drin
- spot profile (quasi all of the above kombiniert) für Multi-Job setups sind auch drin
- Open Format Export -> Ihr könnt das Format nutzen, um eure eigenen Tools zu bauen. Ich baue gerade auch einen Trainer basierend auf dem offenen Format
- AI Specs -> Für alle vibe-coder, ihr bekommt dank der AI specs Instruktionen für die AI eurer Wahl, wenn ihr eure eigenen Maßgeschneiderten Tools bauen wollt

Warum ich mir die Mühe gemacht habe einen GTO Solver und dazugehörigen Viewer zu programmieren, wenn es bereits etablierte (und sehr SEHR starke) Produkte gibt:

- Ich finde die meisten GTO Solver haben eine katastrophale, völlig überfordernde UI. Sie können zugegebenermaßen mehr als mein Produkt (zumindest zum jetzigen Zeitpunkt), allerdings ist die Eintrittsbarriere relativ hoch, für den Durchschnittsuser überfordernd und wird den Standardbedürfnissen nicht gerecht
- Web-based tools, davon ist GTOWizard am prominentesten - Habe ich auch ausprobiert und für sehr gut empfunden, allerdings auch als auf Dauer kostspielig und ich bin generell kein Fan von Abomodellen als Endverbraucher. Für mich gibt's da ein paar Probleme: Ich nutze eigentlich immer nur eine "Lösung" bzw. eine Strategie aus der Library, brauche daher einen Großteil der Daten, für dich ich bezahle gar nicht. GTOWizard kann die Preise irgendwann erhöhen, die Daten gehören komplett denen und man nutzt die Strategien, die auch andere genau so nutzen. Ich bin fan von so viel Autarkie wie möglich, ist aber natürlich Geschmackssache.
- Job creation: Können eigentlich alle größeren Solver aber ist vom Workflow i.d.R. recht umfangreich und unsortiert, erfordert viel manuellen Input. Ich habe meine Produkt von der Prämisse gedacht: Was hilft dem durchschnittlichen Spieler am allermeisten und wie kann ich genau diesen Workflow optimieren?
- Bei anderen kommerziellen Solvern hakt es oft an den Exportmöglichkeiten ganzer Game-Trees: Bei ART/GTO lässt sich a) der gesamte Game-Tree für wirklich alle nodes und alle Karten abspeichern und human und maschine-readable exportieren (von .art files zu .artgto files).

Der letzte Punkt ist vor allem dann relevant, wenn man die Daten auch weiterverarbeiten will und das ist dann auch der wesentliche Anknüpfungspunkte des Viewers --> er nutzt die exportierten Game-Trees und überführt das die Daten in ein sauberes, für den Zweck optimiertes UI.

Spoiler


Im Bild: BU vs SB 3b pot, Flop node mit SB to act, Lösung generiert im Solver und ausgelesen vom Viewer. Wie ihr im YT video auch sehen könnt, lässt sich der gesamte Game Tree inklusiver Riverspots sehr sehr schnell navigieren.

Ein paar Screenshots vom Solver:

Spoiler


Zum Abschluss ein Aufruf an alle Interessierten:
Ich suche bis zu 10 Beta Tester, die mit mir in dieser Phase beide Produkte auf Herz und Nieren prüfen. Als Alleinentwickler läuft man mit Scheuklappen und iteriert nicht alle möglichen Funktionen durch, so dass Bugs schnell entgehen und gut gedachte und schlecht gemachte Funktionen evtl. gar nicht mehr auffallen. Daher suche ich Leute, die WIRKLICH Bock drauf haben gutes, ehrliches Feedback zu geben und das Development ein Stück weit mitzugestalten. Der Ort des Austausches ist dabei der Discord-Server. D.h. es wäre für Beta-Tester erforderlich das Discord zu joinen und sich über folgende Liste zu registrieren: https://www.artgto.com/waitlist . Danach stelle ich den Downloadlink und einen persönlichen Beta-Key zur Verfügung. Auf die Warteliste könnt ihr euch aber auch grundsätzlich setzen, wenn ihr Produkt-Updates, early bird Rabatte etc. erhalten wollt.

Ich werde den Thread hier laufend updaten, wahrscheinlich hab ich im ersten Draft auch ne Menge vergessen. Unabhängig vom Beta-Test bin ich natürlich auch auf die Meinungen der Community gespannt!


Antwort
Zitat
16 replies
notx0r
Joined: 24.03.2013

Coole Sache, bin gerne dabei _thumbsup:


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Original von notx0r
Coole Sache, bin gerne dabei _thumbsup:

dank dem hier schon mal 3 bugs beseitigt. Genau so ist's gedacht ;)


Antwort
Zitat
janor666
Joined: 08.11.2009

Hi, hast du alles selbst geschrieben oder auch mit KI? Wenn ja mit welcher?


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Original von janor666
Hi, hast du alles selbst geschrieben oder auch mit KI? Wenn ja mit welcher?

Der Solver (Engine, Funktionslogik) ist 95% selbst gecoded. Für einige Tasks habe ich claude code genutzt, wie z.B. engine tuning, was enorm benching-time gespart hat, d.h. Claude Code ist in der Lage die verschiedenen engine-Parameter nach Geschwindigkeit zu bench-testen, was "händisch" sehr viel länger dauert, d.h. ein großer Teil der Endoptimierung, also die letzten Fünkchen Geschwindigkeit habe ich mit claude code herausgeholt. Der Viewer (also die gesamte Logik dahinter) stammt von mir, UI tweaks aber ebenfalls mit verschiedenen AI erarbeitet, weil ich in .css eine ziemliche Nulpe bin. Ich nutze ansonsten claude code laufend, wenn ich bugs spotte, um die schneller identifizieren können. Das funktioniert ziemlich gut.

Vielleicht noch ein kurzer Zusatz hierzu: AIs sind mMn sehr gute companions für coding tasks, um vor allem einen Plan zu erstellen a) welche Funktionen ggf. fehlen b) wie die roadmap aussehen sollte c) sanity checks und pitfalls von code changes. Ich nutze das als solo-coder auch sehr gerne, weil ich ansonsten mit niemandem drüber sprechen kann und es hilft enorm, die Arbeit zu strukturieren und Ausbauschritte zu priorisieren. Also AI als Sparing-Partner für solche Projekte kann ich wärmstens empfehlen.

Edith sagt: Ich suche immer noch beta tester, wie gesagt gibt's den viewer umsonst für euch und imo ist der schon echt stark -> könnt ihr auch direkt hier runterladen https://www.artgto.com/viewer und eine preflop gto strategie nutzen, wenn ihr darauf bock habt.

Edith2 sagt: 18,000ster post :coolface:


Antwort
Zitat
bigdog63
Joined: 24.10.2011

sieht cool aus - würde gerne auch den Solver testen


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Würd mich freuen! Dann gerne ins discord kommen und artgto.com/waitlist ausfüllen. Kriegst dann einen beta key


Antwort
Zitat
bigdog63
Joined: 24.10.2011

bin schon drinne = fatkinglouie


Antwort
Zitat
aaaRt
Joined: 15.08.2007

:f_thumbsup:


Antwort
Zitat
ThiloHarich
Joined: 09.01.2008

Respekt.

Hast du das in deiner Freizeit programmiert?
Welche Programmiersprache?
Ich würde mich auch als Betatester zur Verfügung stellen.
Muss mal sehen wie viel Zeit ich finde.


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Original von ThiloHarich
Respekt.

Hast du das in deiner Freizeit programmiert?
Welche Programmiersprache?
Ich würde mich auch als Betatester zur Verfügung stellen.
Muss mal sehen wie viel Zeit ich finde.

Rust. Es kommen für solche Projekte ohnehin nur c++ oder rust in Frage, weil man z.B. mit rust das memory layout recht präzise kontrollieren kann. Die Schnelligkeit von solvern hängt maßgeblich davon ab wie schnell man Zahlen aus dem Speicher halt und das kann man bei rust genau festlegen. Gibt noch paar andere Vorteile von rust aber das ist der Wesentlichste.

Und ja, Freizeit (vlt auch ein bisschen während der Arbeitszeit :coolface: ).

Bist im Discord herzlich willkommen!


Antwort
Zitat
ThiloHarich
Joined: 09.01.2008

Ja das hört sich vernünftig an.
Habe noch nie mit Rust gearbeitet.
Hatte auch mal eventuell überlegt einen Solver (in Java) zu schreiben. Aber aktuell keinen Bock drauf.


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Für den Privatgebrauch sicherlich möglich auch wenn ich es mir mit Java recht schwierig vorstelle. Gerade 16 bit compression und AVX2-Befehle sind glaub ich entweder umständlich oder noch gar nicht möglich? Plus, du musst immer ne Runtime beim user voraussetzen. Mit Rust ist der Solver super leightweight, 5mb Datei, die ohne alles startet. Und glaube auch dass Java langsamer beim solven wäre.


Antwort
Zitat
ThiloHarich
Joined: 09.01.2008

Ja Java sollte langsamer sein.
Aber wo du AVX2 ansprichst.
Ich habe da Recht viel Erfahrung in einem privaten Projekt gesammelt.
Wenn man Java hilft und geschickt primitive Arrays benutzt kommt man auf Recht gute Performance. Der jit kann das Recht gut, wenn man die Daten gut vor hält.
Nur etwa 20 % von der c Performance entfernt.
Es gibt auch eine vector API. Das funktioniert aber nur bei sehr speziellen Aufgaben.
Habe mir den Algorithmus aber noch nicht im Detail an gesehen, um abschätzen zu können ob eine Performante Java Implementierung möglich erscheint.


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Original von ThiloHarich
Ja Java sollte langsamer sein.
Aber wo du AVX2 ansprichst.
Ich habe da Recht viel Erfahrung in einem privaten Projekt gesammelt.
Wenn man Java hilft und geschickt primitive Arrays benutzt kommt man auf Recht gute Performance. Der jit kann das Recht gut, wenn man die Daten gut vor hält.
Nur etwa 20 % von der c Performance entfernt.
Es gibt auch eine vector API. Das funktioniert aber nur bei sehr speziellen Aufgaben.
Habe mir den Algorithmus aber noch nicht im Detail an gesehen, um abschätzen zu können ob eine Performante Java Implementierung möglich erscheint.

Spannend, können uns zu dem Thema auch gerne ausstauschen. Bist ja schon im dc!

Meanwhile hab ich relativ viel Feedback dazu bekommen, dass für die meisten Leute beim Viewer der Download irgendwie doch eine größere Hürde darstellt als erwartet. Als boomer hab ich eigentlich immer in dl-richtung gedacht aber natürlich lässt sich die viewer app auch im browser hosten: https://artgto.com/try/ (nur preflop ranges, die postflop files sind zu groß für's hosting).

Edit: Als testfile hab ich mal die Lösung für BUvsSB 3b pot, board = ThJhKh hochgeladen. Bisschen setupzeit brauch ich noch aber damit wird man dann gleich, wenn nichts schiefgeht, auch den gesamten Postflop flow testen können.


Antwort
Zitat
crameLBON
Joined: 26.06.2007

wb :)
Ich würde es auch liebend gerne testen! Habe das Formular ausgefüllt.


Antwort
Zitat
aaaRt
Joined: 15.08.2007

Danke ;)
Falls du im dc bist, gerne kurze dm, damit ich dich zuordnen kann.


Antwort
Zitat