I’d like to see a different view of the GUI from a greater distance.
Example: Miracle is running on a TV; I’m about 3–4 meters away.
In this view, the position eval for both sides should be displayed in large font. Next to that, the search depth should be shown during a live Eng-Eng match.
The currently calculated move should be highlighted on the chessboard itself.
Otherwise, as much screen space as possible should be used to display the chessboard very large, along with larger fonts for: Who is currently playing against whom.
We were most recently working on this for Arena. We had a request from a café that wanted to display chess matches on a TV for their visitors. However, during the development period, Martin Blume and I went our separate ways, and we only implemented this in beta versions; I don’t think it was ever released.
The current state of Miracle’s development is impressive. The programmer and the community are doing an excellent job. I’d like to thank them for that!
Myracle GUI
Moderator: Ras
-
Frank Quisinsky
- Posts: 7575
- Joined: Wed Nov 18, 2009 7:16 pm
- Location: Gutweiler, Germany
- Full name: Frank Quisinsky
-
Modern Times
- Posts: 3978
- Joined: Thu Jun 07, 2012 11:02 pm
Re: Myracle GUI
Martin states that development is finished. Only bug fixes from this point.Frank Quisinsky wrote: ↑Tue Oct 27, 2026 7:44 am The current state of Miracle’s development is impressive. The programmer and the community are doing an excellent job. I’d like to thank them for that!
Yes a superb GUI. Martin has done an incredible job. I never thought I'd replace Cutechess but Myracle won me over. I use it exclusively now.
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
first - thanks!
and yes, only bugfixes now.
myracle already supports up to 8 custom layouts (alt-1 through alt-8), where people can disable various panels
and resize predefined panels using splitters,
fonts can be globally scaled up to 125% in appearance settings, player names can be changed to appear above the board,
so the flexibility is already quite high.
recent changes improve debug logs that can be used for broadcasts (I'm sure Andres will have a lot to say about this when the time is right)
I still need one more fix so that logged tournaments don't starve due to scheduling, but that's it. I've seen a prototype
where myracle is writing 4 debug logs from a single GUI instance and all games are being broadcasted through a vps,
only requiring a single application running along with myracle that monitors debug logs automatically and broadcasts out.
people then simply only open a webpage and can watch online. this approach is very flexible and the GUI doesn't have to do
anything complicated.
for example, recent two changes in log settings allow to
1) filter UCI logs that ignore extraneous info from uci engines, like uci currmove on a separate line to keep the logs small and
2) to auto-delete debug logs on the GUI exits to avoid wasting disk space
that being said - this way the games can be presented in another way, so no need to change how the GUI itself presents the games
and yes, only bugfixes now.
myracle already supports up to 8 custom layouts (alt-1 through alt-8), where people can disable various panels
and resize predefined panels using splitters,
fonts can be globally scaled up to 125% in appearance settings, player names can be changed to appear above the board,
so the flexibility is already quite high.
recent changes improve debug logs that can be used for broadcasts (I'm sure Andres will have a lot to say about this when the time is right)
I still need one more fix so that logged tournaments don't starve due to scheduling, but that's it. I've seen a prototype
where myracle is writing 4 debug logs from a single GUI instance and all games are being broadcasted through a vps,
only requiring a single application running along with myracle that monitors debug logs automatically and broadcasts out.
people then simply only open a webpage and can watch online. this approach is very flexible and the GUI doesn't have to do
anything complicated.
for example, recent two changes in log settings allow to
1) filter UCI logs that ignore extraneous info from uci engines, like uci currmove on a separate line to keep the logs small and
2) to auto-delete debug logs on the GUI exits to avoid wasting disk space
that being said - this way the games can be presented in another way, so no need to change how the GUI itself presents the games
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
build 157 is up:
- fix: **found move in debug log now appears in correct order, i.e. after engine plays bestmove
- log game end in debug log
- prioritize tournament with logging enabled with 0 active games in scheduler (useful for broadcasts)
- show (L) after tour status in tour overview for tours that have logging enabled
- fix: **found move in debug log now appears in correct order, i.e. after engine plays bestmove
- log game end in debug log
- prioritize tournament with logging enabled with 0 active games in scheduler (useful for broadcasts)
- show (L) after tour status in tour overview for tours that have logging enabled
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
build 158 is up:
- fix? : limit maximum engine output lines to 1024; thanks to Guenther for reporting this problem
what happens is GUI would hang when playing misbehaving engines.
I believe the new Cyrus IS Chess is the culprit, in some cases it keeps spamming the GUI indefinitely, looping and overflowing the 8-bit depth
with UCI info, like nonstop info depth pv blah..., goes to depth 254, then overflows to 0 and so on
(until a timeout hits I believe)
when debugging the GUI I saw over 40k lines before the fix, it would never recover from this
so now the GUI still "hangs" for a while, being literally DDOSed by the engine, but after a couple of second recovers and continues; however internal queues are still being hit hard, allocating over a gigabyte of RAM during the "freeze"
I really have no idea what to do instead of recommending people to avoid using buggy engines, like some allocate tens of gigabytes of RAM and other do this "DDOS" thing
I'm now doing another run with debug log enabled, hoping to catch the problem and fill a bug report, but it's going to take hours...
- fix? : limit maximum engine output lines to 1024; thanks to Guenther for reporting this problem
what happens is GUI would hang when playing misbehaving engines.
I believe the new Cyrus IS Chess is the culprit, in some cases it keeps spamming the GUI indefinitely, looping and overflowing the 8-bit depth
with UCI info, like nonstop info depth pv blah..., goes to depth 254, then overflows to 0 and so on
(until a timeout hits I believe)
when debugging the GUI I saw over 40k lines before the fix, it would never recover from this
so now the GUI still "hangs" for a while, being literally DDOSed by the engine, but after a couple of second recovers and continues; however internal queues are still being hit hard, allocating over a gigabyte of RAM during the "freeze"
I really have no idea what to do instead of recommending people to avoid using buggy engines, like some allocate tens of gigabytes of RAM and other do this "DDOS" thing
I'm now doing another run with debug log enabled, hoping to catch the problem and fill a bug report, but it's going to take hours...
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
a followup: my apologies to Steve, the offending engine was Chers 0.32, not Cyrus IS Chess... 
steps to reproduce:
steps to reproduce:
Code: Select all
position startpos moves e2e4 c7c5 g1f3 e7e6 d2d4 c5d4 f3d4 b8c6 b1c3 c6b8 c3b1 b8c6 b1c3 d8c7 f2f4 c6d4 d1d4 g8f6 e4e5 f6d5 c3d5 e6d5 c2c3 c7c6 c1e3 d7d6 f1e2 d6e5 d4e5 c6e6 a1d1 e6e5 f4e5 c8e6 e2b5 e8d8 a2a3 d8c8 h2h3 f8e7 h1f1 c8b8 b5d3 e7h4 e1e2 h4g3 e3f4 g3f4 f1f4 b8c7 d1f1 c7c6 e2e3 c6c5 b2b4 c5c6 g2g4 a8d8 b4b5 c6c5 f4a4 d8a8 h3h4 h7h6 a4d4 a8b8 a3a4 b8d8 h4h5 h8e8 f1f2 c5b6 d4f4 b6c5 e3d2 d8b8 d3f5 e8e7 f5e6 f7e6 f4f7 b8e8 d2d3 a7a6 b5a6 b7a6 f2f4 c5b6 f4b4 b6c6 f7f3 c6c5 a4a5 e8c8 b4b6 c8c6 b6b2 e7a7 f3f1 a7c7 f1f2 c7a7 f2f8 a7c7 b2b1 c7a7 f8f2 a7c7 b1b8 c7a7 f2f1 a7c7 f1f8 c7e7 f8f4 e7a7 f4f2 a7c7 f2f1 c7a7 b8b1 a7c7 f1f2 c7a7 f2f8 a7c7 b1b2 c7a7 f8f2 a7c7 f2f1 c7a7 f1f3 a7c7 b2b8 c7a7 f3f4 a7e7 f4f8 c6c7 b8b6 c7c6 f8b8 c6d6 b8c8
go wtime 7344 btime 926 winc 300 binc 300
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
build 159 is up:
- GUI should be resilient against engine output spamming by slightly rewriting two widgets:
- engine output list flushes once per frame
- multi-line edit flushes once per frame/repaint, also now keeps up to 2x line limit before deleting lines
both changes now allow the GUI to handle engines like Chers in info-exploding positions, even in infinite analysis
- GUI should be resilient against engine output spamming by slightly rewriting two widgets:
- engine output list flushes once per frame
- multi-line edit flushes once per frame/repaint, also now keeps up to 2x line limit before deleting lines
both changes now allow the GUI to handle engines like Chers in info-exploding positions, even in infinite analysis
-
SSTATHIS
- Posts: 77
- Joined: Tue Jun 22, 2010 7:55 pm
Re: Myracle GUI
Hello Martin!
When add a new engine in directory list if you press in keyboard quickly , lets say "L","A","N" then you go to the first directory that begins with "LAN".
If you do the same at engine list it catches only one letter, so you go to the first engine that begins with "N".
Is it possible to fix engine list so that it behaves like directory list?
Best regards and thanks again for the best GUI...
When add a new engine in directory list if you press in keyboard quickly , lets say "L","A","N" then you go to the first directory that begins with "LAN".
If you do the same at engine list it catches only one letter, so you go to the first engine that begins with "N".
Is it possible to fix engine list so that it behaves like directory list?
Best regards and thanks again for the best GUI...
-
mar
- Posts: 3090
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
Re: Myracle GUI
hi Stathis,SSTATHIS wrote: ↑Thu Oct 29, 2026 7:57 am Hello Martin!
When add a new engine in directory list if you press in keyboard quickly , lets say "L","A","N" then you go to the first directory that begins with "LAN".
If you do the same at engine list it catches only one letter, so you go to the first engine that begins with "N".
Is it possible to fix engine list so that it behaves like directory list?
Best regards and thanks again for the best GUI...
the listbox key behavior is modeled after standard listboxes, where a key goes to the first letter (i.e. C), the pressing the same key again cycles items starting with C (file list behaves differently).
I agree with you and don't like the "standard" behavior either, so let's change it in the next build (I'm sure people will find more bugs anyway), at least in engine selection listboxes.
-
Max
- Posts: 268
- Joined: Tue Apr 13, 2010 10:41 am
Re: Myracle GUI
Hi Martin,
got two questions about gauntlets.
I'm running odd gauntlets between a strong engine (e.g. without Nb1) against a group of weaker ones (ordered from low to high Elo). After a tournament is finished the 3rd line from tournament_xxx.cross.txt gets copied and added to a file.
My result file after 8 gauntlets:
Here I noticed the issue: Myracle sorts the result/crosstable by points which means that the opponents 2-11 are in a different order for each line.
In this case the opponents should better stay in the original order, so my summary file would look like:
Is there an option not to sort the crosstabs?
In a second gauntlet, the strong engine is supposed to play against the pack as black (without Nb8). Is this setup possible? Couldn't figure it out.
got two questions about gauntlets.
I'm running odd gauntlets between a strong engine (e.g. without Nb1) against a group of weaker ones (ordered from low to high Elo). After a tournament is finished the 3rd line from tournament_xxx.cross.txt gets copied and added to a file.
My result file after 8 gauntlets:
Code: Select all
# Name Points % Elo +/- W-L-D 1 2 3 4 5 6 7 8 9 10 11
------------------------------------------------------------------------------------------------
1 Berserk 14 8.5/10 85.0 +301.3 +8-1=1 0 = 1 1 1 1 1 1 1 1
1 Clockwork 26.10.25 8.0/10 80.0 +240.8 +7-1=2 0 = = 1 1 1 1 1 1 1
1 Alexandria 9.1.7 8.0/10 80.0 +240.8 +8-2=0 0 0 1 1 1 1 1 1 1 1
1 Cinder 0.6.1 8.0/10 80.0 +240.8 +7-1=2 0 = = 1 1 1 1 1 1 1
1 Obsidian 16.15 8.0/10 80.0 +240.8 +8-2=0 0 0 1 1 1 1 1 1 1 1
1 Triumviratus 8.0 8.0/10 80.0 +240.8 +8-2=0 0 0 1 1 1 1 1 1 1 1
1 Chess System Tal 3 8.0/10 80.0 +240.8 +7-1=2 0 = = 1 1 1 1 1 1 1
1 Stockfish 19 7.5/10 75.0 +190.8 765.9 +7-2=1 0 0 = 1 1 1 1 1 1 1 Here I noticed the issue: Myracle sorts the result/crosstable by points which means that the opponents 2-11 are in a different order for each line.
In this case the opponents should better stay in the original order, so my summary file would look like:
Code: Select all
# Name Points % Elo +/- W-L-D 1 2 3 4 5 6 7 8 9 10 11
------------------------------------------------------------------------------------------------
1 Berserk 14 8.5/10 85.0 +301.3 +8-1=1 1 1 1 1 1 1 = 1 1 0
1 Clockwork 26.10.25 8.0/10 80.0 +240.8 +7-1=2 1 1 1 1 1 = = 1 1 0
1 Alexandria 9.1.7 8.0/10 80.0 +240.8 +8-2=0 1 1 1 1 1 0 1 1 1 0
1 Cinder 0.6.1 8.0/10 80.0 +240.8 +7-1=2 1 1 1 1 1 1 = 0 1 =
1 Obsidian 16.15 8.0/10 80.0 +240.8 +8-2=0 1 1 1 1 0 1 1 1 1 0
1 Triumviratus 8.0 8.0/10 80.0 +240.8 +8-2=0 1 1 1 1 1 1 0 1 0 1
1 Chess System Tal 3 8.0/10 80.0 +240.8 +7-1=2 1 1 = 1 1 1 1 = 1 0
1 Stockfish 19 7.5/10 75.0 +190.8 765.9 +7-2=1 1 1 1 1 1 0 = 1 1 0 Is there an option not to sort the crosstabs?
In a second gauntlet, the strong engine is supposed to play against the pack as black (without Nb8). Is this setup possible? Couldn't figure it out.