This is the fifth incarnation of a zells prototype, implemented with Squeak Smalltalk. Its programming model is described here.
You can find a demo of this prototype here.
Download Squeak Smalltalk and run the included image. After you've cloned the project with git, file-in the files in the file-outs
folder by drag-and-dropping them into the running image.
Paste the code blocks into a workspace and execute (do-it) each line individually.
(Z5ListenerZellMorph new) openInHand.
(Z5StemZellMorph for: (Z5StemZell thatIsA: '"Hello World"')) openInHand.
(Z5TurtleZellMorph new) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: #go)) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: #turn)) openInHand.
(Z5DishMorph for: Z5Dish new) openInWindow openInHand.
(Z5EmitterZellMorph new) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: 'understood signals̀')) openInHand.
(Z5ButtonZellMorph new) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: #hey)) openInHand.
(Z5ZellMorph for: (Z5DynamicZell doing: [ :s :z | (s name = #hey) ifTrue: [z emit: (Z5StemZell named: #ho)]])) openInHand.
Z5ClockZellMorph new openInHand.
(Z5StemZellMorph for:(Z5NumberZell named:#distance thatIsA: '3')) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: #go thatIsA: 'distance')) openInHand.
(Z5StemZellMorph for: (Z5StemZell new haveA: (Z5StemZell named: #target thatIsA: '"distance"'); haveA: (Z5StemZell named: #increaseBy thatIsA: '0.1'))) openInHand.
(Z5StemZellMorph for: (Z5StemZell named: #turn)) openInHand.