You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Click a loose block to run it, with the output in a bubble
Trying one idea meant building a whole script under a hat and pressing the
green flag. Now a block lying loose on the canvas is a scratch pad.
- click a loose block or stack and it runs from there down
- click a reporter and the bubble shows its value
- click a hat and its whole script runs
- blocks inside a script under a hat are left alone, so nothing runs by
accident while you are building
The piece is compiled the same way the tab is, carrying its imports, helper
functions, variable starting values and any custom block definitions, so a
loose call to your own block works. It runs in the project folder with the
project interpreter, so file paths and installed packages behave. Anything
still going after fifteen seconds is stopped.
A mistake is explained rather than dumped: the bubble shows the last line,
ZeroDivisionError and friends, and the full traceback goes to the console
along with everything that was printed.
Version 1.2.0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+26Lines changed: 26 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,7 @@ and hand in.
44
44
| 🧩 **148 blocks**| Hat blocks, C-shaped loops, hexagonal booleans, reporter ovals that drop into slots — the real Scratch 3 shapes and colours |
45
45
| 🐍 **Real Python, live**| The generated source updates as you drag. No hidden interpreter |
46
46
| ▶️ **It actually runs**|`print`, `input`, errors and a stop button, all wired to the built-in console |
47
+
| 👆 **Click a block to try it**| A loose block runs on its own and reports what it printed in a bubble underneath |
47
48
| 🌐 **Talks to the web out of the box**| GET, POST, headers, JSON, downloads — using `urllib` from the standard library, so there is nothing to install |
48
49
| 📥 **Import any `.py`**| Turn a program you already have into blocks — loops, functions, try/except, f-strings and all |
49
50
| 📦 **Every PyPI package**| pip dashboard installs anything and turns it into blocks automatically |
@@ -52,6 +53,30 @@ and hand in.
52
53
53
54
---
54
55
56
+
## Click a block to try it
57
+
58
+
Blocks lying loose on the canvas are a scratch pad. Click one and it runs on its
59
+
own, with a little bubble underneath showing what it printed.
60
+
61
+
<divalign="center">
62
+
<imgsrc="docs/screenshot-click.png"width="900"alt="Clicking a loose stack shows its output in a bubble">
63
+
</div>
64
+
65
+
* Click a **loose block or stack** → it runs from there down.
66
+
* Click a **reporter** (the oval ones) → the bubble shows its value.
67
+
* Click a **hat** → its whole script runs, the same as the green flag.
68
+
* Blocks that sit inside a script under a hat are left alone, so nothing runs by
69
+
accident while you are building.
70
+
71
+
Mistakes are explained rather than dumped — the bubble shows
72
+
`ZeroDivisionError: division by zero` and the full traceback goes to the console.
73
+
Custom blocks, variables and packages all work, because the piece is compiled
74
+
with the same imports and definitions as the rest of the tab. Variables start
75
+
from their starting values each time, and anything still running after 15
76
+
seconds is stopped.
77
+
78
+
---
79
+
55
80
## The internet, with nothing installed
56
81
57
82
The **Web** category is built in. No `pip install requests`, no venv, no
@@ -314,6 +339,7 @@ Until you save, they go next to the application.
314
339
|`Ctrl``I`| Import a Python file |
315
340
|`Ctrl``Z`| Undo |
316
341
|`Ctrl``,`| Settings |
342
+
| Click a loose block | Run just that block and see what it printed |
0 commit comments