Skip to content

Add terminal backend#216

Open
almarklein wants to merge 14 commits into
mainfrom
term
Open

Add terminal backend#216
almarklein wants to merge 14 commits into
mainfrom
term

Conversation

@almarklein

@almarklein almarklein commented Jun 25, 2026

Copy link
Copy Markdown
Member

Closes #207

I'm presenting rendercanvas at Euroscipy in a few weeks, and a terminal backend would be a lovely surprise during a live demo.

Screen Recording 2026-06-26 at 16 25 22

AI disclaimer: I used Claude as lazy way to get the blessed calls I need. But I cleaned them up and made them more efficient in most cases.

@almarklein almarklein marked this pull request as draft June 25, 2026 20:18
@almarklein almarklein marked this pull request as ready for review June 26, 2026 14:47
Comment thread rendercanvas/terminal.py Outdated
Comment thread docs/backends.rst
| ``loop`` (an ``AsyncioLoop``)
- | Backend when Python is running in the browser,
| via Pyodide or PyScript.
* - ``terminal``

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you add a subsection further down it would also show up in the sidebar and the main page.

@Vipitis Vipitis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First of all this is awesome! I did quickly look at the diff and also tried it with some pygfx and fpl examples. It worked better than expected.
Via ssh the performance was quite poor, but this could have all kinds of reasons.
All of the bitmap examples (drag, noise, snake) had issues but I think that is due to their hardcoded resolution.

As a dream in the future: if pygfx and fpl render the graphics and gui layer as two different canvas (maybe also for streaming the gui not as pixels, so it could be run the the frontend?) - maybe the gui (and other text) could be rendered as ascii text in the terminal isntead of pixels
Image

And finally, would it make sense to add a small table to the readme. Something like a compatibility matrix to highlight the various backends supported now and what differences might be?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backend: Terminal

2 participants