Re: BokehGUI in GNU Radio 4 (GSOC)
Cyrille Morin <[email protected]> Wed, 25 Mar 2026 16:31:48 +0100
| Newsgroups | gmane.comp.gnu.radio.general |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------HhdSa5C0qfeL0vpP2bbkSzw4
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Hi Ziad,
Having a running GR 4.0 with a custom OOT is certainly a good start,
well done!
I'm definitely not in the best position to give advice on GR4 code
philosophy as I still need to start playing with it before GSoc starts.
But I believe you'll find the best and most up to date info in the
gnuradio4 repo itself, including the readmes in the /docs folder, and
also the 4.0.0-RC1 tag description which covers a lot of the current state
I mention Bokeh in the project description because it's the dependency
we use for the current (GR3) version of the remote monitoring system, so
we know it can cover the main use case.
But it is far from perfect so we are open to using an other library
providing that same core use case of /remote/ monitoring with plots and
interaction with widgets, with the added bonus of not requiring anything
installed on the remote computer.
So ImGUI, with its many flavours /could/ be an interesting option with
better performance, nice plots... as long as it shows an efficient way
for remote operation outside of the local browser.
I hope it helps with some of your questions,
Best
*Cyrille MORIN*
/Ingénieur SED/
/Équipe MARACAS/
Logo Inria
Centre Inria de Lyon
Laboratoire CITI
Campus La Doua - Villeurbanne
6 avenue des Arts
F-69621 Villeurbanne
https://team.inria.fr/maracas/
Le 24/03/2026 à 04:40, Ziad Haithem 202201027 a écrit :
>
> Dear GNU Radio Community,
>
> I have decided that my gsoc proposal/project will be on the "BokehGUI
> in GNU radio 4.0" idea
>
>
> 1. Proof of Concept & Progress
>
> To get comfortable with the GR 4.0 , I’ve developed a small PoC . It
> uses a signal generator block into a custom OOT module that publishes
> data to a socket via ZMQ. A Python script then subscribes to that
> socket and plots the sine wave in the browser in real-time using Bokeh.
>
> Main goal is to just show i was able to take something generated by
> GR4 and get it displayed in the browser
>
> *
>
> *Repo:*
> [https://github.com/ZiadFahmyZewailCity/gr4.0-bokehgui/tree/gettingFamiliarWithDevelopment]
>
> *
>
> *Video Demo:* [Link to Video
> <https://drive.google.com/file/d/1-5VSE6BerbMY9ruzjn5oQxtQFzTD34lS/view?usp=sharing>]
>
> I've also worked through the GR3 beginner and OOT tutorials, and spent
> time playing with ZMQ/Bokeh to ensure I can handle plotting and the
> data flow between processes.
>
>
> 2. Seeking Guidance on GR 4.0
>
> While I’m thrilled I got the PoC running, this is my first time
> working with a codebase of this scale. My main concern is moving from
> "making it work" to "making it right." What are some resources that'll
> help me design and write code that "fits" with the design philosophy
> behind OOT modules for GR4. I feel like this will be very important
> for my proposal
>
>
> 3. Use of bokeh
>
> I wrote the POC in bokeh and focused on it when experimenting because
> its what was mentioned in the project description and there are plenty
> of resources for it. However while researching I found that in
> European GNU Radio Days
> <https://wiki.gnuradio.org/index.php?title=European_GNU_Radio_Days/2025> in
> the next generation remote GUI section. "Imgui" was considered a good
> candidate to be used for wireless plotting for GNU Radio 4.0. Has the
> community moved away from this opinion ? is it still present ? Should
> I write my proposal with only one library in mind or be flexible and
> have this been decided later on in development ?
>
>
> 4. Why This Project?
>
> I initially looked for something with a bit more DSP and
> communications concepts. However this project feels important, and I
> decided to go with something which would have an impact instead of
> wasting time thinking of a custom project to propose that had me
> playing with some of the concepts i was most interested in.
>
> I am really looking forward to the possibility of contributing to GNU
> Radio this summer as part of GSOC. Thank you for your time and for any
> pointers you can provide!
>
> cyberspectrum is best spectrum (I think the code word is for the
> proposal only but one can never be too safe lol)
>
> Sincerely,
>
> Ziad
> --
> Ziad Haithem Fahmy
> ID:202201027
> Communications and Information Engineering Student
>
> Zewail City of Science, Technology and Innovation
>
> Ahmed Zewail Road, October Gardens, Giza 12578, Egypt
> <https://goo.gl/maps/bbNTX7EMrbZA1Lhu7>
>
> www.zewailcity.edu.eg <http://www.zewailcity.edu.eg/>
>
>
> 0120 205 7175
>
> Whatsapp number - 0109 479 1824
>
>
>
--------------HhdSa5C0qfeL0vpP2bbkSzw4
Content-Type: multipart/related;
boundary="------------vhB0aeyG5Wr4xOcG9O0DqbBO"
--------------vhB0aeyG5Wr4xOcG9O0DqbBO
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Ziad,</p>
<p>Having a running GR 4.0 with a custom OOT is certainly a good
start, well done!<br>
<br>
I'm definitely not in the best position to give advice on GR4 code
philosophy as I still need to start playing with it before GSoc
starts.<br>
But I believe you'll find the best and most up to date info in the
gnuradio4 repo itself, including the readmes in the /docs folder,
and also the 4.0.0-RC1 tag description which covers a lot of the
current state</p>
<p>I mention Bokeh in the project description because it's the
dependency we use for the current (GR3) version of the remote
monitoring system, so we know it can cover the main use case.<br>
But it is far from perfect so we are open to using an other
library providing that same core use case of <i>remote</i>
monitoring with plots and interaction with widgets, with the added
bonus of not requiring anything installed on the remote computer.<br>
So ImGUI, with its many flavours <i>could</i> be an interesting
option with better performance, nice plots... as long as it shows
an efficient way for remote operation outside of the local
browser.<br>
<br>
I hope it helps with some of your questions,</p>
<p>Best</p>
<div class="moz-signature">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<strong>Cyrille MORIN</strong><br>
<div class="moz-signature"> <em>Ingénieur SED</em><br>
<em>Équipe MARACAS</em></div>
<div class="moz-signature"><br>
<img src="cid:[email protected]"
moz-do-not-send="false" alt="Logo Inria" width="200"
height="59"><br>
<span style="color: rgb(255, 0, 0)">Centre Inria de Lyon</span></div>
<div class="moz-signature"><br>
Laboratoire CITI<br>
Campus La Doua - Villeurbanne<br>
6 avenue des Arts<br>
F-69621 Villeurbanne</div>
<div class="moz-signature"><br>
</div>
<div class="moz-signature"> <a
href="https://team.inria.fr/maracas/"
data-mce-href="https://team.inria.fr/maracas/"
class="moz-txt-link-freetext">https://team.inria.fr/maracas/</a><br>
</div>
</div>
<div class="moz-cite-prefix">Le 24/03/2026 à 04:40, Ziad Haithem
202201027 a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CAN9g7ZxdgPxZmYhaWe_vCf5FUdnHDnTF2ARq+Fh3je+=jyP4cA@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">
<p>Dear GNU Radio Community,</p>
<p>I have decided that my gsoc proposal/project will be on the
"BokehGUI in GNU radio 4.0" idea</p>
<h3>1. Proof of Concept & Progress</h3>
<p>To get comfortable with the GR 4.0 , I’ve developed a small
PoC . It uses a signal generator block into a custom OOT
module that publishes data to a socket via ZMQ. A Python
script then subscribes to that socket and plots the sine
wave in the browser in real-time using Bokeh.</p>
<p>Main goal is to just show i was able to take something
generated by GR4 and get it displayed in the browser </p>
<ul>
<li>
<p><b>Repo:</b> [<a
href="https://github.com/ZiadFahmyZewailCity/gr4.0-bokehgui/tree/gettingFamiliarWithDevelopment"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://github.com/ZiadFahmyZewailCity/gr4.0-bokehgui/tree/gettingFamiliarWithDevelopment</a>]</p>
</li>
<li>
<p><b>Video Demo:</b> [<a
href="https://drive.google.com/file/d/1-5VSE6BerbMY9ruzjn5oQxtQFzTD34lS/view?usp=sharing"
moz-do-not-send="true">Link to Video</a>]</p>
</li>
</ul>
<p>I've also worked through the GR3 beginner and OOT
tutorials, and spent time playing with ZMQ/Bokeh to ensure I
can handle plotting and the data flow between processes.</p>
<h3>2. Seeking Guidance on GR 4.0 </h3>
<p>While I’m thrilled I got the PoC running, this is my first
time working with a codebase of this scale. My main concern
is moving from "making it work" to "making it right." What
are some resources that'll help me design and write code
that "fits" with the design philosophy behind OOT modules
for GR4. I feel like this will be very important for my
proposal </p>
<h3>3. Use of bokeh </h3>
<div>I wrote the POC in bokeh and focused on it when
experimenting because its what was mentioned in the project
description and there are plenty of resources for it.
However while researching I found that in <a
href="https://wiki.gnuradio.org/index.php?title=European_GNU_Radio_Days/2025"
style="font-family:sans-serif;font-size:14px"
moz-do-not-send="true">European GNU Radio Days</a> in the
next generation remote GUI section. "<span
style="color:rgb(32,33,34);font-family:sans-serif;font-size:14px">Imgui"</span><span
style="color:rgb(32,33,34);font-family:sans-serif;font-size:14px"> was
considered a good candidate to be used for wireless
plotting for GNU Radio 4.0. Has the community moved away
from this opinion ? is it still present ? Should I write
my proposal with only one library in mind or be flexible
and have this been decided later on in development ? </span></div>
<h3>4. Why This Project?</h3>
<p>I initially looked for something with a bit more DSP and
communications concepts. However this project feels
important, and I decided to go with something which would
have an impact instead of wasting time thinking of a custom
project to propose that had me playing with some of the
concepts i was most interested in. </p>
<p>I am really looking forward to the possibility of
contributing to GNU Radio this summer as part of GSOC. Thank
you for your time and for any pointers you can provide!</p>
<p>cyberspectrum is best spectrum (I think the code word is
for the proposal only but one can never be too safe lol)</p>
<p>Sincerely,</p>
<div>Ziad </div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div><font size="1" color="#666666">Ziad Haithem Fahmy</font></div>
<div><span style="font-size:x-small"><font color="#666666">ID:202201027</font></span></div>
<div><span style="font-size:x-small"><font color="#666666"> </font></span></div>
<div><font size="1" color="#666666">Communications and
Information Engineering Student</font></div>
<div>
<p class="MsoNormal"
style="margin-bottom:6pt;line-height:normal"><font
size="1" color="#666666"><span
style="font-family:Arial,sans-serif">Zewail City
of Science, Technology and Innovation</span> </font></p>
<p class="MsoNormal"
style="margin-bottom:6pt;color:rgb(34,34,34);line-height:normal"><span
style="font-family:Arial,sans-serif"><font size="1"><a
href="https://goo.gl/maps/bbNTX7EMrbZA1Lhu7"
style="color:rgb(17,85,204)" target="_blank"
moz-do-not-send="true">Ahmed Zewail Road,
October Gardens, Giza 12578, Egypt</a></font></span></p>
<p class="MsoNormal"
style="margin-bottom:0in;color:rgb(34,34,34);line-height:normal"><span
style="font-family:Arial,sans-serif"><a
href="http://www.zewailcity.edu.eg/"
style="color:rgb(17,85,204)" target="_blank"
moz-do-not-send="true"><font size="1">www.zewailcity.edu.eg</font></a></span></p>
<p class="MsoNormal"
style="margin-bottom:0in;color:rgb(34,34,34);line-height:normal"><br>
</p>
<p class="MsoNormal"
style="margin-bottom:0in;line-height:normal"><font
size="1" color="#666666">0120 205 7175</font></p>
<p class="MsoNormal"
style="margin-bottom:0in;line-height:normal"><font
color="#666666"><font size="1">Whatsapp number - </font><span
style="font-size:x-small">0109 479 1824</span></font></p>
<p class="MsoNormal"
style="margin-bottom:0in;color:rgb(34,34,34);line-height:normal"><br>
</p>
<p class="MsoNormal"
style="margin-bottom:0in;color:rgb(34,34,34);line-height:normal"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</body>
</html>
--------------vhB0aeyG5Wr4xOcG9O0DqbBO
Content-Type: image/png; name="Inria_signature_mail_200px.png"
Content-Disposition: inline; filename="Inria_signature_mail_200px.png"
Content-Id: <[email protected]>
Content-Transfer-Encoding: base64
iVBORw0KGgoAAAANSUhEUgAAAMgAAAA7CAYAAAA+XsUpAAAAGXRFWHRTb2Z0d2FyZQBBZG9i
ZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tl
dCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1l
dGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUu
Ni1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt
bnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8v
bnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv
bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9w
IENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDVFRUQz
NzlDQjA3MTFFOThEQTNDMkE4RjU0NUEzRTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6
NDVFRUQzN0FDQjA3MTFFOThEQTNDMkE4RjU0NUEzRTgiPiA8eG1wTU06RGVyaXZlZEZyb20g
c3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0NUVFRDM3N0NCMDcxMUU5OERBM0MyQThGNTQ1
QTNFOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NUVFRDM3OENCMDcxMUU5OERBM0My
QThGNTQ1QTNFOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0
YT4gPD94cGFja2V0IGVuZD0iciI/PjlpLn4AAAh5SURBVHja7F3dceM2EIZu9B5NHvMSXgXW
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
RK5CYII=
--------------vhB0aeyG5Wr4xOcG9O0DqbBO--
--------------HhdSa5C0qfeL0vpP2bbkSzw4--