SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹
International Workshop on Smalltalk Technologies, 2017, Maribor, Slovenia
Pragmatic Insights:‹
Live UIs for Agent-based
Modelling in Pharo
Jigyasa Grover, Nick Papoulias, Serge Stinckwich & Pierre Bommel
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹2
Modelling
&
Simulation
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹3ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹
✓ Agent Based Modelling (ABM) & Object Oriented Paradigm
✓ Concise Analysis of (a few popular) present day ABM platforms‹
— MobiDyC — NetLogo‹
— GAMA — CORMAS
✓ Our Work ! ‹
Developing spatial interface for CORMAS in Pharo‹
— Implementation Details‹
— Case Study: The ECEC Model
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹4
To enable simulation of actions of heterogeneous entities &
interactions in a collective spatial environment
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹5
Common uses of ABM & simulations comprise social or
biological system simulations such as crowd behaviour, urban
simulation or disease propagation.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹6
ABMs provide explicit views to:‹
* follow each agent individually ‹
* understand consequences of
multiple interactions in system as
a whole
Micro vs Macro : Point of Views
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹7
Significant features looked forward to:
・Dynamical evolution‹
・Graphical interface‹
・Live-exploration‹
・Time saving simulation rendering‹
・Flexibility to mould the source code
・Enhanced scalability
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹8
One of the most important
components of these systems is
spatial user interface especially
for end-users. ‹
It allows the users to interact with
simulations in real-time to vividly
visualise & partially control the
evolution.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹9
Let’s analyse some agent-based modelling systems namely
MobiDyC, NetLogo, GAMA and CORMAS and shed
some light on their positive aspects and limitations in terms of
programming flexibility, extensibility & more.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹10
ABM
Systems
Pros Cons
MobiDyc
Multi-platform tool ‹
Flexible architecture ‹
Elementary GUI for beginners
Enterprise tool ‹
Domain specific ‹
Space & time computation constraints
NetLogo
Free & Open Source environment‹
Lucid extensibility with third-party apps ‹
Partial compilation to JVM bytecode
Single instance, single core ‹
Inability to model information rich
systems ‹
Limited object-oriented support
GAMA
Open source tool ‹
Support for 3D modelling & visualisation ‹
Easy partnership with third-party apps
Complex GUI ‹
Support for spatially explicit ABMs ‹
Specific to GIS data models
CORMAS
Open-source & free software ‹
Based on MVC architecture ‹
Detailed sensitivity analysis ‹
Comprehensive spatial interfaces
Based on proprietary language ‹
Limited extensibility with third-party
apps ‹
Opaque model structure
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹11
MobiDyC CORMAS
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹12
Rationale behind this choice is to
allow modern re-imagination that
can take advantage of
developments in: ‹
Agile Visualization‹
Moldable tools‹
Domain-specific languages (DSLs)
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹13
Our spatial interface for CORMAS in Pharo
‹
CORMAS currently uses CincomÂź VisualWorksÂź
Our effort is to make CORMAS open-source by porting it
from VisualWorksÂź to Pharo.
Recreating the platform using:‹
Roassal visualisation engine, Spec UI framework, Glamorous Toolkit
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹14
The ECEC Model‹
Sample project in CORMAS; inspired from a paper by Pepper &
Smuts, "Evolution of Cooperation in an Ecological Context". ‹
‹
The model consists of a 2D grid, containing two kinds of entities:
plants and foragers.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹15
The ECEC Model‹
Main Idea: Study of the survival of two populations of foragers that depends on
biomass availability of plants & initial spatial configuration of the landscape.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹16
CORMAS‹
Pharo
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹17
Roassal Visualisation
Engine ‹
‹
Instance of CORMAS
Model initialised in
RTGridLayout.‹
‹
Cells of grid defined as
RTBox, each of a given
dimension. ‹
‹
Each cell element given a
different shade, varying
according to attribute value.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹18
Running simulation with cells changing colours in real-time with shades
being dependent on an attribute, for example on biomass in ECEC Model .
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹19
Spec UI Framework ‹
defaultSpec is used as a pre-selected method to put into a columnar layout:‹
・Menu or the toolbar built using Spec MenuModel, ‹
・Diagram containing the CORMAS Model from Roassal RTView‹
・TabManager Model which gathers multiple tabs
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹20
Initially, a SpecToolbar is
set up by adding basic
window with a
CORMAS Model
diagram & a
MenuGroupModel.
Separate execution
panel is created with
Run, Stop and Reset
buttons.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹21
With flow, Load menu is detailed by allowing loading of different
CORMAS Models along-with execution panel.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹22
Visualisation sub-menu made
is generic by selecting
methods based on their
protocols.
Sub-menu provides
possibilities to picturize data
for various entities & PoVs.
Similar method for entities to
view real-time information,
attributes are collected via
modalClasses dictionary.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹23
UI built so far supports probe visualisations & rudimentary
simultaneous views.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹24
Glamorous Toolkit‹
Customised GTInspector;
independent of model -
directly extending it in
CORMAS-Core package in
super-class SpatialEntityCell.
Each child-class inherited
implements its own methods
for id, state, etc. & thus shows
specific values corresponding
to the instance.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹25
Presenting cell information
(here: biomass) using
customised inspector
initiated on onHover event.
Presenting detailed cell
information (here: id,
coordinates, etc.) using
customised inspector
initiated on onClick event.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹26
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹27
Roassal, SpecUI & GTools has provided a good base to overcome the
short-comings of present day ABMs in an Open Source
environment.
Leveraged the above to support multiple visualisation perspectives, run-
time probing of simulations along-with providing appreciable
programming flexibility.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹28
Brief analysis spells out need to explore lively simulations to interact
with agents in simulation effortlessly in real-time.
ABM platforms require development of extensions & plug-ins
compatible with third-party applications for better
interoperability.
~ fin ~
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹29
Improving GUI (zoom & multi-windowing), including missing
features (time-travel) and designing better techniques for data analysis
& visualisation.
Reducing coding requirements, future developments focus on design
of embedded DSLs & UIs to automatically generate partial code.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹30
github.com/jigyasa-grover/CORMAS-Pharo
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹31
Follow-up questions.
Ideas for improvements.
Chat.
ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹32
@jigyasa_grover
grover.jigyasa1@gmail.com
github.com/jigyasa-grover
jigyasagrover.wordpress.com

Weitere Àhnliche Inhalte

Ähnlich wie Pragmatic Insights - Live UIs for Agent-based Modelling in Pharo

Introduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformIntroduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformSANGHEE SHIN
 
Fusion of Multi-MAV Data
Fusion of Multi-MAV DataFusion of Multi-MAV Data
Fusion of Multi-MAV DataDariolakis
 
DIGEST PODCAST
DIGEST PODCASTDIGEST PODCAST
DIGEST PODCASTIRJET Journal
 
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM FPGA-based Hardware Acceleration for Fruit Recognition Using SVM
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM Associate Professor in VSB Coimbatore
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdfOpenACC
 
Kaijen Hsiao at AI Frontiers: Adorable Intelligence
Kaijen Hsiao at AI Frontiers: Adorable IntelligenceKaijen Hsiao at AI Frontiers: Adorable Intelligence
Kaijen Hsiao at AI Frontiers: Adorable IntelligenceAI Frontiers
 
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...Daniele Malitesta
 
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...VLSICS Design
 
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...VLSICS Design
 
Fault Detection using Python
Fault Detection using PythonFault Detection using Python
Fault Detection using PythonRishabh Garg
 
Automating Software Development Using Artificial Intelligence (AI)
Automating Software Development Using Artificial Intelligence (AI)Automating Software Development Using Artificial Intelligence (AI)
Automating Software Development Using Artificial Intelligence (AI)Jeremy Bradbury
 
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...OpenTopography Facility
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsIRJET Journal
 
Big Linked Data Federation - ExtremeEarth Open Workshop
Big Linked Data Federation - ExtremeEarth Open WorkshopBig Linked Data Federation - ExtremeEarth Open Workshop
Big Linked Data Federation - ExtremeEarth Open WorkshopExtremeEarth
 
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...IRJET Journal
 
GIS 5103 – Fundamentals of GISLecture 83D GIS.docx
GIS 5103 – Fundamentals of GISLecture 83D GIS.docxGIS 5103 – Fundamentals of GISLecture 83D GIS.docx
GIS 5103 – Fundamentals of GISLecture 83D GIS.docxshericehewat
 
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...IRJET Journal
 
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESSubhajit Sahu
 
DEMETER at OGC Agriculture Session
DEMETER at OGC Agriculture SessionDEMETER at OGC Agriculture Session
DEMETER at OGC Agriculture SessionH2020 DEMETER
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureTom Mens
 

Ähnlich wie Pragmatic Insights - Live UIs for Agent-based Modelling in Pharo (20)

Introduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformIntroduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin Platform
 
Fusion of Multi-MAV Data
Fusion of Multi-MAV DataFusion of Multi-MAV Data
Fusion of Multi-MAV Data
 
DIGEST PODCAST
DIGEST PODCASTDIGEST PODCAST
DIGEST PODCAST
 
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM FPGA-based Hardware Acceleration for Fruit Recognition Using SVM
FPGA-based Hardware Acceleration for Fruit Recognition Using SVM
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
 
Kaijen Hsiao at AI Frontiers: Adorable Intelligence
Kaijen Hsiao at AI Frontiers: Adorable IntelligenceKaijen Hsiao at AI Frontiers: Adorable Intelligence
Kaijen Hsiao at AI Frontiers: Adorable Intelligence
 
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...
[RecSys2023] Challenging the Myth of Graph Collaborative Filtering: a Reasone...
 
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...
AN EFFICIENT FPGA IMPLEMENTATION OF MRI IMAGE FILTERING AND TUMOUR CHARACTERI...
 
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...
An Efficient FPGA Implemenation of MRI Image Filtering and Tumour Characteriz...
 
Fault Detection using Python
Fault Detection using PythonFault Detection using Python
Fault Detection using Python
 
Automating Software Development Using Artificial Intelligence (AI)
Automating Software Development Using Artificial Intelligence (AI)Automating Software Development Using Artificial Intelligence (AI)
Automating Software Development Using Artificial Intelligence (AI)
 
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...
Enhancing usability and utility of USGS 3D Elevation Program (3DEP) lidar dat...
 
Partial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather ConditionsPartial Object Detection in Inclined Weather Conditions
Partial Object Detection in Inclined Weather Conditions
 
Big Linked Data Federation - ExtremeEarth Open Workshop
Big Linked Data Federation - ExtremeEarth Open WorkshopBig Linked Data Federation - ExtremeEarth Open Workshop
Big Linked Data Federation - ExtremeEarth Open Workshop
 
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...
An Intelligent approach to Pic to Cartoon Conversion using White-box-cartooni...
 
GIS 5103 – Fundamentals of GISLecture 83D GIS.docx
GIS 5103 – Fundamentals of GISLecture 83D GIS.docxGIS 5103 – Fundamentals of GISLecture 83D GIS.docx
GIS 5103 – Fundamentals of GISLecture 83D GIS.docx
 
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...
IRJET-Hardware Co-Simulation of Classical Edge Detection Algorithms using Xil...
 
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTESDyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
DyGraph: A Dynamic Graph Generator and Benchmark Suite : NOTES
 
DEMETER at OGC Agriculture Session
DEMETER at OGC Agriculture SessionDEMETER at OGC Agriculture Session
DEMETER at OGC Agriculture Session
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

KĂŒrzlich hochgeladen

BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto GonzĂĄlez Trastoy
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 

KĂŒrzlich hochgeladen (20)

BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 

Pragmatic Insights - Live UIs for Agent-based Modelling in Pharo

  • 1. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹ International Workshop on Smalltalk Technologies, 2017, Maribor, Slovenia Pragmatic Insights:‹ Live UIs for Agent-based Modelling in Pharo Jigyasa Grover, Nick Papoulias, Serge Stinckwich & Pierre Bommel
  • 2. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹2 Modelling & Simulation
  • 3. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹3ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹ ✓ Agent Based Modelling (ABM) & Object Oriented Paradigm ✓ Concise Analysis of (a few popular) present day ABM platforms‹ — MobiDyC — NetLogo‹ — GAMA — CORMAS ✓ Our Work ! ‹ Developing spatial interface for CORMAS in Pharo‹ — Implementation Details‹ — Case Study: The ECEC Model
  • 4. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹4 To enable simulation of actions of heterogeneous entities & interactions in a collective spatial environment
  • 5. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹5 Common uses of ABM & simulations comprise social or biological system simulations such as crowd behaviour, urban simulation or disease propagation.
  • 6. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹6 ABMs provide explicit views to:‹ * follow each agent individually ‹ * understand consequences of multiple interactions in system as a whole Micro vs Macro : Point of Views
  • 7. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹7 Significant features looked forward to: ・Dynamical evolution‹ ・Graphical interface‹ ・Live-exploration‹ ・Time saving simulation rendering‹ ・Flexibility to mould the source code ・Enhanced scalability
  • 8. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹8 One of the most important components of these systems is spatial user interface especially for end-users. ‹ It allows the users to interact with simulations in real-time to vividly visualise & partially control the evolution.
  • 9. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹9 Let’s analyse some agent-based modelling systems namely MobiDyC, NetLogo, GAMA and CORMAS and shed some light on their positive aspects and limitations in terms of programming flexibility, extensibility & more.
  • 10. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹10 ABM Systems Pros Cons MobiDyc Multi-platform tool ‹ Flexible architecture ‹ Elementary GUI for beginners Enterprise tool ‹ Domain specific ‹ Space & time computation constraints NetLogo Free & Open Source environment‹ Lucid extensibility with third-party apps ‹ Partial compilation to JVM bytecode Single instance, single core ‹ Inability to model information rich systems ‹ Limited object-oriented support GAMA Open source tool ‹ Support for 3D modelling & visualisation ‹ Easy partnership with third-party apps Complex GUI ‹ Support for spatially explicit ABMs ‹ Specific to GIS data models CORMAS Open-source & free software ‹ Based on MVC architecture ‹ Detailed sensitivity analysis ‹ Comprehensive spatial interfaces Based on proprietary language ‹ Limited extensibility with third-party apps ‹ Opaque model structure
  • 11. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹11 MobiDyC CORMAS
  • 12. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹12 Rationale behind this choice is to allow modern re-imagination that can take advantage of developments in: ‹ Agile Visualization‹ Moldable tools‹ Domain-specific languages (DSLs)
  • 13. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹13 Our spatial interface for CORMAS in Pharo ‹ CORMAS currently uses CincomÂź VisualWorksÂź Our effort is to make CORMAS open-source by porting it from VisualWorksÂź to Pharo. Recreating the platform using:‹ Roassal visualisation engine, Spec UI framework, Glamorous Toolkit
  • 14. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹14 The ECEC Model‹ Sample project in CORMAS; inspired from a paper by Pepper & Smuts, "Evolution of Cooperation in an Ecological Context". ‹ ‹ The model consists of a 2D grid, containing two kinds of entities: plants and foragers.
  • 15. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹15 The ECEC Model‹ Main Idea: Study of the survival of two populations of foragers that depends on biomass availability of plants & initial spatial configuration of the landscape.
  • 16. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹16 CORMAS‹ Pharo
  • 17. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹17 Roassal Visualisation Engine ‹ ‹ Instance of CORMAS Model initialised in RTGridLayout.‹ ‹ Cells of grid defined as RTBox, each of a given dimension. ‹ ‹ Each cell element given a different shade, varying according to attribute value.
  • 18. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹18 Running simulation with cells changing colours in real-time with shades being dependent on an attribute, for example on biomass in ECEC Model .
  • 19. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹19 Spec UI Framework ‹ defaultSpec is used as a pre-selected method to put into a columnar layout:‹ ・Menu or the toolbar built using Spec MenuModel, ‹ ・Diagram containing the CORMAS Model from Roassal RTView‹ ・TabManager Model which gathers multiple tabs
  • 20. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹20 Initially, a SpecToolbar is set up by adding basic window with a CORMAS Model diagram & a MenuGroupModel. Separate execution panel is created with Run, Stop and Reset buttons.
  • 21. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹21 With flow, Load menu is detailed by allowing loading of different CORMAS Models along-with execution panel.
  • 22. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹22 Visualisation sub-menu made is generic by selecting methods based on their protocols. Sub-menu provides possibilities to picturize data for various entities & PoVs. Similar method for entities to view real-time information, attributes are collected via modalClasses dictionary.
  • 23. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹23 UI built so far supports probe visualisations & rudimentary simultaneous views.
  • 24. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹24 Glamorous Toolkit‹ Customised GTInspector; independent of model - directly extending it in CORMAS-Core package in super-class SpatialEntityCell. Each child-class inherited implements its own methods for id, state, etc. & thus shows specific values corresponding to the instance.
  • 25. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹25 Presenting cell information (here: biomass) using customised inspector initiated on onHover event. Presenting detailed cell information (here: id, coordinates, etc.) using customised inspector initiated on onClick event.
  • 26. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹26
  • 27. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹27 Roassal, SpecUI & GTools has provided a good base to overcome the short-comings of present day ABMs in an Open Source environment. Leveraged the above to support multiple visualisation perspectives, run- time probing of simulations along-with providing appreciable programming flexibility.
  • 28. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹28 Brief analysis spells out need to explore lively simulations to interact with agents in simulation effortlessly in real-time. ABM platforms require development of extensions & plug-ins compatible with third-party applications for better interoperability. ~ fin ~
  • 29. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹29 Improving GUI (zoom & multi-windowing), including missing features (time-travel) and designing better techniques for data analysis & visualisation. Reducing coding requirements, future developments focus on design of embedded DSLs & UIs to automatically generate partial code.
  • 30. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹30 github.com/jigyasa-grover/CORMAS-Pharo
  • 31. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹31 Follow-up questions. Ideas for improvements. Chat.
  • 32. ESUG IWST 2017 Jigyasa Grover (@jigyasa_grover)‹32 @jigyasa_grover grover.jigyasa1@gmail.com github.com/jigyasa-grover jigyasagrover.wordpress.com