[squeakland] Project Announcement: EmoSTEP

Jeremy Landry hakyoku at gmail.com
Mon Jan 22 23:49:17 UTC 2018

Currently, there's a resurgence of appreciation for the aesthetic of old
computer hardware.  The popularity of such 'fantasy consoles' like Pico8,
TIC 80 and Pixel Vision 8 are following the long-lasting wave of
retro-computing which has only gained momentum since the introduction of
the first popular 'retro emulator', NESticle in 1995, an emulator that
mimicked Nintendo's original flagship games console from 1984.  I don't
foresee this aesthetic going away any time soon and it is quite inviting
for kids and adults who want to try their hand at making something on the
computer but don't want to be bogged down with the current generation's
level of complexity.  Even the basic low-resolution graphics inherent to
these old systems invite the most novice of artists because there's no
expectation that anything will look 'polished' in the way that modern 3D
games and applications look.  By their very nature is a concrete limit as
well as a 'challenge' to make just a few pixels resemble an idea.  Combine
this with these graphics and sounds requiring imagination to be 'complete'
by anyone else who looks at it, it becomes quite an interesting medium to
explore even for people who've gone through thousands of hours of graphics
and audio instruction and training; the possibility of someone without this
experience producing something that stands up to the work of a professional
is much higher than in high-resolution, high-definition settings.

My project involves a complete makeover of Etoys so that it retains
functionality of Etoys/Smalltalk at it's core, a system that is itself
already inviting, with the inviting nature of low-definition visuals and
audio.  Using the already-made classes such as OLPCVirtualDisplay and
FMSound, the idea is to follow the concept of projects like Pico8 as a
'fantasy console' and make a 'fantasy computer' running a 'fantasy OS',
which at this point is dubbed EmoSTEP.  It also is highly dependent on
having some good demonstrations how to think about this version of Etoys
and minor additions/changes to some of the tools so that everything marries
together in a cohesive feel.

I myself am not a programmer by trade, I'm actually in the middle of a
career change from electronics technician/grunt to graphic design (I am in
my last year of school), so a lot of the things I've been doing
programatically have been very slow as I'm learning how to implement these
ideas as I go.  And you know what that means:

The purpose of this project is not to supplant or replace Etoys at all or
even be considered part of the 'main Etoys goals', but to provide an
alternative entrypoint for those interested who cannot see beyond the
initial look of Etoys what it's capable of.  In fact, one of the main goals
I have is to keep projects made in this hack completely Etoys compatible so
that a project made in EmoStep loads like any other Etoys project into the
official Etoys release (and of course, later, Squeak).

Aspects/applets that are intended to be included are as follows:

Low Color Depth (I need to hack the 8bit palette maker to not simply
produce 248 shades of gray and 7 'regular colors' but be a true
approximation of a full 16bit/32bit depth color range but executed with
fewer colors to select from...)

Pixel-Art Oriented PaintBox (currently, the GSoC Paintbox edit and built in
Paintbox are only capable of really bad high res/low color art work.  What
is needed are special brushes for 'lighten/darken', pattern/stipple brushes
etc.  See GRAFX2 application for an idea of tools that need to be

FM Sound Composer (restructuring the old Squeak code that allows editing
and creating of FM instruments/sounds and musical compositions and
accessing the creations via Etoys viewer flaps)

Demosdemosdemosdemos (lots of cool little 'applet' projects that
demonstrate commonly sought-after effects and basic game-engine operations)

Faux "This Is An Emulated Machine" Aesthetic (rather than making it seem as
if it's just a programming language, take the approach interface-wise that
mimics *some* aspects of 90's computers, such as startup/shutdown screens,
reconfiguring windows themes with a theme editor, icon makers, etc.)

I hope other people are interested in this project.  I feel that much of
Smalltalk/Etoys lack of traction in these days where terms like 'retro' and
'livecoding' are all the rage fall directly on aesthetic and approach to
the system and that's really what, ultimately, is the aim of the project;
introduce more people to the world and especially the history of

The name EmoSTEP itself is a bit of satire on the negative effects of Steve
Jobs short sightedness to sellsellsell has obscure the real purpose of the
work he and his team cannibalized for the Lisa, Macintosh and NextStep
computer lines.  Namely, it made it easier for 'scribes' to pump out
one-size-fits-all style programs which mostly don't fit anyone rather than
the real goal of the Smalltalk team which was to make it so that people
could build their own software when they need/want it by borrowing from the
works of such scribes without restrictions.  EmoSTEP is short for "Etoys
Morphic OS SmallTalk Experimental Programming" or something of that
nature.  I came close to just calling it AmigoSTEP, but truth be told, the
name isn't solid just yet, so if anything, maybe someone's got some clever
puns to throw out at me.

Anyway, here's a pile of screenshots for some work towards this project,
both in Etoys and the edited image with the low-fi graphics already
operational at a pixel-density level (the color depth issue noted above is
still on the to-do list).

I'd love comments, critiques, insights, flames, etc. and welcome any
assistance and guidance from people that understand the underlying
smalltalk much better than I.  I kind of regard it as a minor miracle I've
been able to do as much as I have thus far, a true testament to the
language and it's immediacy of the environment, something I hope to turn up
to 11 with this project.

Thanks for reading this long message!

various random images from work on this project in no particular order of
importance--> https://imgur.com/a/0PT4B
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakland.org/pipermail/squeakland/attachments/20180122/ae26bada/attachment.html>

More information about the squeakland mailing list