SlideShare a Scribd company logo
Pablo Tesone & Martín Dias - ESUG 2025 - Gdansk
Toplo, Bloc & Spec
A Graphic Layer for the Present and Future
Consortium
1
Pablo Tesone
Pharo Consortium
Engineer
In this presentation:
@tesonep
Martín Dias
Pharo Consortium
Engineer
@tinchodias
Just in the
presentation e
ff
ort…
a lot of development
behind
2
3
A low-level UI infrastructure
& framework for Pharo
geometry
(polygon)
element
background
border
transformation
(a matrix with
skew and translation)
What is Bloc?
4
What is Toplo?
A widget library on top of Bloc
• No New Revolutionary Concepts
• Keep it Simple
• Bloc has many of the features
• Bloc + Element States and Skins
• + 25 Widgets ready to use
• Collaboration with
What about Spec?
The power of Toplo, the ease of Spec
5
• Toplo backend for Spec
• Switch backend transparently
• Full support
An Application Stack for Everyone
6
harfbuzz.dll
Alexandrie
SDL2.dll
OSWindow
Bloc
cairo.dll freetype.dll
Toplo
FFI
Spec - Toplo
Spec Part
Toplo Part
Bloc Part
An Application Stack for Everyone
7
harfbuzz.dll
Alexandrie
SDL2.dll
OSWindow
Bloc
cairo.dll freetype.dll
Toplo
FFI
Spec - Toplo
Spec Part
Toplo Part
Bloc Part
Use what you
need when you
need it
Why Cairo and SDL2 / SDL3?
Simple FFI bindings to C libraries
• Works on all Pharo's platforms
• GPU acceleration (and especially in SDL3)
• Active game-development community
• Stable with active development. Support by gnome
community (it's the way to draw custom widgets in
GTK 3 and GTK 4).
• Not GPU-optimized but we can use bu
ff
ering, layer
composition and other techniques to mitigate.
8
Releases
New Versions Available
• Bloc v2.5.0
• Toplo v0.6.0
• Spec-Toplo v0.6.0
• Alexandrie v2.5.0
• Album v0.6.0
9
Release policy:
~ every 2 months
Bloc
10
Damaged Areas - Bounds Optimizations
11
Overlays where
not performant,
we were drawing
all
Damaged Areas - Bounds Optimizations
12
• Overlay benchmarks ~ 15x faster
• Heavy drawing benchmarks ~ 30%
improvement
• Other benchmarks ~ 15% improvement
10k elements in the space,
handling the mouse over
~ 25x faster
Benchmarks & Metrics
13
• 55 Benchmarks
• Running in All platforms
• Automated Execution
• Covering most of the functionalities
• Realtime Measuring Tools
Optimized Shadows
Use gradients to emulate shadows
14
More Geometries
Histogram, Stadium and Sigmoid
15
New Demos
Color Picker + Paint
& Gradients
16
New Demos: Drag & Drop game
17
@Enzo-Demeulenaere
Roassal in Bloc
18
Other Improvements in Bloc
• Clean ups & Simpli
fi
cations
• Documentation and Comments
• Better Scaling in HDPI Screens
• Better naming conventions
• Bug-
fi
xing
• Saving / Restoring image keeps open spaces
• Improvements in Animations, Texts
• Fix Text Styler
• Fix Set Cursor
• More Tests
19
+500 Commits
12 Contributors
Toplo
20
@plantec
Better Menus and Tooltips
21
Anchor Layout & Floats
22
Tree
23
Tab Pane Improvements
24
Accordion
25
Other Toplo Improvements
• Cleaning
• Bug
fi
xing
• Progress Bar
• Improving Performance in Lists
• Tag Element
• Tree
• Improvements in Selection Modes
• Improvements in Skins
• Overlays
26
~1000 Commits
7 Contributors
Spec-Toplo
27
• Tree
• Toolbar
• Menus
• Password text
fi
eld
• Dropbox icons
More Widgets in Spec-Toplo
28
Pharo Tools in Toplo
We can eat our own food
29
We can eat our own food
30
Directly from the
same Spec App
Pharo Tools in Toplo
More and More….
• SDL2
• Updated to latest version
• Contributing / Bug-
fi
xing
• SDL3
• New Bindings (thanks CIG)
• Future Backend
• Documentation Booklet
31
https://github.com/SquareBracketAssociates/Booklet-Graphics
Future
We keep the same objectives
• Faster & More Stable Bloc
• More Widgets in Toplo
• Full Implementation of Spec-Toplo
• More Pharo Tools in Spec-Toplo
• Tests & Documentation
32
Mailing-list: lse-openbloc@inria.fr
(subscribe at: http://sympa.inria.fr)
Discord: Pharo server / #bloc channel
Bloc: https://github.com/pharo-graphics/Bloc
Toplo: https://github.com/pharo-graphics/Toplo
Spec-Toplo: https://github.com/pharo-graphics/Spec-Toplo
33
STAY
TUNED!
Consortium
Check Released
Versions!!!

More Related Content

PDF
Pharo 11: A stabilization release
ESUG
 
PDF
Pharo 12 @ ESUG2024 http://www.pharo.org
ESUG
 
PDF
Just the Facets, Ma'am
Teamstudio
 
PDF
Pharo 10 and beyond
ESUG
 
PDF
Toplo, Bloc & Spec: A Graphic Layer for the Future
ESUG
 
PDF
Cincom Roadmap ESUG2014
ESUG
 
PDF
Tensorflow 2.0 and Keras ODSC Jan 2019
Francesco Mosconi
 
PPTX
Web development post io2016
Filip Bruun Bech-Larsen
 
Pharo 11: A stabilization release
ESUG
 
Pharo 12 @ ESUG2024 http://www.pharo.org
ESUG
 
Just the Facets, Ma'am
Teamstudio
 
Pharo 10 and beyond
ESUG
 
Toplo, Bloc & Spec: A Graphic Layer for the Future
ESUG
 
Cincom Roadmap ESUG2014
ESUG
 
Tensorflow 2.0 and Keras ODSC Jan 2019
Francesco Mosconi
 
Web development post io2016
Filip Bruun Bech-Larsen
 

Similar to Toplo, Bloc & Spec - A Graphic Layer for the Present and Future (20)

PDF
APEX 5.1 Interactive Grid: What it Means for You and Your Users
Karen Cannell
 
PDF
What is (not) Pharo 8?
FAST
 
PDF
ESUG 2025: Pharo 13 and Beyond (Stephane Ducasse)
ESUG
 
PDF
Creating a Great XPages User Interface
Teamstudio
 
PDF
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Howard Greenberg
 
PDF
Spec 2.0
Esteban Lorenzano
 
PDF
Spec 2.0: The next step on desktop UI
Pharo
 
PDF
Dojo Grids in XPages
Teamstudio
 
PDF
Why Plone Will Die
Andreas Jung
 
PPTX
Frontender in-2016
Filip Bruun Bech-Larsen
 
PDF
H2O at Berlin R Meetup
Jo-fai Chow
 
PDF
Berlin R Meetup
Sri Ambati
 
PPTX
Creating Accessible PDFs with Acrobat: Requirements, Implementation, and Eval...
3Play Media
 
PPTX
Mini .net conf 2020
Marco Parenzan
 
PPTX
Just the Facets Ma'am ... MWLUG August 23, 2013, Indianapoilis, IN
Paul Della-Nebbia
 
PPTX
Just the Facets Ma'am - MWLUG 2013
balassaitis
 
PDF
Nov_2024_Release_1730395666ddddddddd.pdf
akilanarayanantechie
 
PDF
It's the way of the present - Why you should use plone.app.contenttypes
Philip Bauer
 
PDF
Plone 5 theming unleashed
sneridagh
 
PPTX
Get more Visual Power
Berkovich Consulting
 
APEX 5.1 Interactive Grid: What it Means for You and Your Users
Karen Cannell
 
What is (not) Pharo 8?
FAST
 
ESUG 2025: Pharo 13 and Beyond (Stephane Ducasse)
ESUG
 
Creating a Great XPages User Interface
Teamstudio
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Howard Greenberg
 
Spec 2.0: The next step on desktop UI
Pharo
 
Dojo Grids in XPages
Teamstudio
 
Why Plone Will Die
Andreas Jung
 
Frontender in-2016
Filip Bruun Bech-Larsen
 
H2O at Berlin R Meetup
Jo-fai Chow
 
Berlin R Meetup
Sri Ambati
 
Creating Accessible PDFs with Acrobat: Requirements, Implementation, and Eval...
3Play Media
 
Mini .net conf 2020
Marco Parenzan
 
Just the Facets Ma'am ... MWLUG August 23, 2013, Indianapoilis, IN
Paul Della-Nebbia
 
Just the Facets Ma'am - MWLUG 2013
balassaitis
 
Nov_2024_Release_1730395666ddddddddd.pdf
akilanarayanantechie
 
It's the way of the present - Why you should use plone.app.contenttypes
Philip Bauer
 
Plone 5 theming unleashed
sneridagh
 
Get more Visual Power
Berkovich Consulting
 
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
PDF
Directing Generative AI for Pharo Documentation
ESUG
 
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
ESUG
 
PDF
Integrating Executable Requirements in Prototyping
ESUG
 
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
ESUG
 
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
ESUG
 
PDF
Analysing Python Machine Learning Notebooks with Moose
ESUG
 
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
ESUG
 
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
ESUG
 
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
ESUG
 
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
ESUG
 
PDF
An Analysis of Inline Method Refactoring
ESUG
 
PDF
Identification of unnecessary object allocations using static escape analysis
ESUG
 
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
ESUG
 
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
ESUG
 
PDF
Encoding for Objects Matters (IWST 2025)
ESUG
 
PDF
Challenges of Transpiling Smalltalk to JavaScript
ESUG
 
PDF
Immersive experiences: what Pharo users do!
ESUG
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
Directing Generative AI for Pharo Documentation
ESUG
 
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
ESUG
 
Integrating Executable Requirements in Prototyping
ESUG
 
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
ESUG
 
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
ESUG
 
Analysing Python Machine Learning Notebooks with Moose
ESUG
 
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
ESUG
 
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
ESUG
 
Package-Aware Approach for Repository-Level Code Completion in Pharo
ESUG
 
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
ESUG
 
An Analysis of Inline Method Refactoring
ESUG
 
Identification of unnecessary object allocations using static escape analysis
ESUG
 
Control flow-sensitive optimizations In the Druid Meta-Compiler
ESUG
 
Clean Blocks (IWST 2025, Gdansk, Poland)
ESUG
 
Encoding for Objects Matters (IWST 2025)
ESUG
 
Challenges of Transpiling Smalltalk to JavaScript
ESUG
 
Immersive experiences: what Pharo users do!
ESUG
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
Ad

Recently uploaded (20)

PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PPTX
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Activate_Methodology_Summary presentatio
annapureddyn
 
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
49784907924775488180_LRN2959_Data_Pump_23ai.pdf
Abilash868456
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
Exploring AI Agents in Process Industries
amoreira6
 
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
Presentation about variables and constant.pptx
kr2589474
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 

Toplo, Bloc & Spec - A Graphic Layer for the Present and Future

  • 1. Pablo Tesone & Martín Dias - ESUG 2025 - Gdansk Toplo, Bloc & Spec A Graphic Layer for the Present and Future Consortium 1
  • 2. Pablo Tesone Pharo Consortium Engineer In this presentation: @tesonep Martín Dias Pharo Consortium Engineer @tinchodias Just in the presentation e ff ort… a lot of development behind 2
  • 3. 3 A low-level UI infrastructure & framework for Pharo geometry (polygon) element background border transformation (a matrix with skew and translation) What is Bloc?
  • 4. 4 What is Toplo? A widget library on top of Bloc • No New Revolutionary Concepts • Keep it Simple • Bloc has many of the features • Bloc + Element States and Skins • + 25 Widgets ready to use • Collaboration with
  • 5. What about Spec? The power of Toplo, the ease of Spec 5 • Toplo backend for Spec • Switch backend transparently • Full support
  • 6. An Application Stack for Everyone 6 harfbuzz.dll Alexandrie SDL2.dll OSWindow Bloc cairo.dll freetype.dll Toplo FFI Spec - Toplo Spec Part Toplo Part Bloc Part
  • 7. An Application Stack for Everyone 7 harfbuzz.dll Alexandrie SDL2.dll OSWindow Bloc cairo.dll freetype.dll Toplo FFI Spec - Toplo Spec Part Toplo Part Bloc Part Use what you need when you need it
  • 8. Why Cairo and SDL2 / SDL3? Simple FFI bindings to C libraries • Works on all Pharo's platforms • GPU acceleration (and especially in SDL3) • Active game-development community • Stable with active development. Support by gnome community (it's the way to draw custom widgets in GTK 3 and GTK 4). • Not GPU-optimized but we can use bu ff ering, layer composition and other techniques to mitigate. 8
  • 9. Releases New Versions Available • Bloc v2.5.0 • Toplo v0.6.0 • Spec-Toplo v0.6.0 • Alexandrie v2.5.0 • Album v0.6.0 9 Release policy: ~ every 2 months
  • 11. Damaged Areas - Bounds Optimizations 11 Overlays where not performant, we were drawing all
  • 12. Damaged Areas - Bounds Optimizations 12 • Overlay benchmarks ~ 15x faster • Heavy drawing benchmarks ~ 30% improvement • Other benchmarks ~ 15% improvement 10k elements in the space, handling the mouse over ~ 25x faster
  • 13. Benchmarks & Metrics 13 • 55 Benchmarks • Running in All platforms • Automated Execution • Covering most of the functionalities • Realtime Measuring Tools
  • 14. Optimized Shadows Use gradients to emulate shadows 14
  • 16. New Demos Color Picker + Paint & Gradients 16
  • 17. New Demos: Drag & Drop game 17 @Enzo-Demeulenaere
  • 19. Other Improvements in Bloc • Clean ups & Simpli fi cations • Documentation and Comments • Better Scaling in HDPI Screens • Better naming conventions • Bug- fi xing • Saving / Restoring image keeps open spaces • Improvements in Animations, Texts • Fix Text Styler • Fix Set Cursor • More Tests 19 +500 Commits 12 Contributors
  • 21. Better Menus and Tooltips 21
  • 22. Anchor Layout & Floats 22
  • 26. Other Toplo Improvements • Cleaning • Bug fi xing • Progress Bar • Improving Performance in Lists • Tag Element • Tree • Improvements in Selection Modes • Improvements in Skins • Overlays 26 ~1000 Commits 7 Contributors
  • 28. • Tree • Toolbar • Menus • Password text fi eld • Dropbox icons More Widgets in Spec-Toplo 28
  • 29. Pharo Tools in Toplo We can eat our own food 29
  • 30. We can eat our own food 30 Directly from the same Spec App Pharo Tools in Toplo
  • 31. More and More…. • SDL2 • Updated to latest version • Contributing / Bug- fi xing • SDL3 • New Bindings (thanks CIG) • Future Backend • Documentation Booklet 31 https://github.com/SquareBracketAssociates/Booklet-Graphics
  • 32. Future We keep the same objectives • Faster & More Stable Bloc • More Widgets in Toplo • Full Implementation of Spec-Toplo • More Pharo Tools in Spec-Toplo • Tests & Documentation 32
  • 33. Mailing-list: [email protected] (subscribe at: http://sympa.inria.fr) Discord: Pharo server / #bloc channel Bloc: https://github.com/pharo-graphics/Bloc Toplo: https://github.com/pharo-graphics/Toplo Spec-Toplo: https://github.com/pharo-graphics/Spec-Toplo 33 STAY TUNED! Consortium Check Released Versions!!!