Category: Applications

  • Exploring Croquet in Squeak 6.0: A Community-Driven Effort

    Exploring Croquet in Squeak 6.0: A Community-Driven Effort

    An initiative has recently emerged within the Squeak community to explore bringing Croquet into the modern Squeak 6.0 environment, with their efforts opening up possibilities for personal and educational applications, and potentially paving the way for long-term developments. Community members Edwin Ancaer and Timothy have taken it upon themselves to explore, port, and troubleshoot Croquet – an ambitious collaborative 3D environment originally designed to run in earlier 32-bit versions of Squeak.

    Croquet was a groundbreaking software architecture designed for deep collaboration, originally built as an open, free, and highly portable extension of the Squeak programming system. It provided a platform for both development and real-time collaborative work, with no separation between user and developer environments. Focused on 3D shared spaces, Croquet enabled users to interact in context-based collaborations, observing each other’s actions and focus in real time. A collaboration protocol called TeaTime powered this synchronization, and rendering was based on OpenGL. While newer, proprietary descendants of Croquet have evolved since, the version being revived in Squeak 6.0 reflects this original, exploratory vision.

    Croquet Jasmine, a developer’s release of the system, is available and can be run live in a web browser using the SqueakJS virtual machine – allowing others to easily explore Croquet without a local setup. You can try a live version here: codefrau.github.io/jasmine/.

    Technical Hurdles and Graphics Considerations

    Efforts began early in the process, building on Nikolay Suslov’s work to get the original Open Croquet running on the latest versions of Squeak 5.x. His work laid the groundwork for achieving compatibility with Squeak 6.0. You can explore his repository here: github.com/NikolaySuslov/croquet-squeak. You can also check out detailed steps Nikolay has provided to bring Croquet into an early alpha version of Squeak 6.0 here.

    A primary obstacle encountered was the tight coupling between Croquet and OpenGL 1. As Vanessa Freudenberg pointed out, OpenGL has been deprecated on macOS for years, complicating efforts to run the system on 64-bit machines. Vanessa suggested considering Vulkan or OpenGL 4 as possible alternatives for the rendering backend.

    In consideration of a long-term solution, it is helpful to explore the potential paths forward, each with its own trade-offs:

    • Re-implement OpenGL 1 as a compatibility layer – Offers limited long-term value and would still not work effectively on macOS due to deprecated OpenGL support and the absence of modern graphics capabilities. Efforts like MoltenGL, which aim to bridge OpenGL to Metal, do not support OpenGL 1, making this path particularly challenging.
    • Migrate to a modern OpenGL (3.x or 4.x) – More viable than OpenGL 1 in terms of features, and partially supported on macOS (up to OpenGL 4.1). However, it is deprecated and no longer maintained on Apple platforms, making it an unstable foundation for future development.
    • Adopt Vulkan for high performance – A modern, low-overhead graphics API designed as a successor to OpenGL. While Vulkan is not natively supported on macOS, it can be used via MoltenVK, which translates Vulkan calls to Metal. This option requires significant integration work but offers the most long-term potential across platforms.

    For a long-term solution, Vulkan appears to be the most promising path – essentially a modern, cross-platform successor to OpenGL, developed to overcome many of its limitations. Although not natively supported on Apple platforms, Vulkan’s compatibility through MoltenVK makes it a viable candidate for achieving performance and portability across environments.

    While these options are worth exploring for long-term solutions, they may be unnecessarily complex for personal or educational use. However, the current efforts could prove valuable down the road by revealing key details, helping future work begin from well-understood points in the development process.

    Vanessa has managed to run Croquet Jasmine without modifying the Smalltalk code by using the browser-based SqueakJS VM, with a custom OpenGL 1 implementation written in JavaScript. This was accessed via FFI and mapped to modern WebGL. The approach preserves the original graphics code inside the image while offloading rendering to the browser, and could serve as a model for similar efforts going forward.

    Debugging and the Role of C in a Self-Hosting Environment

    In efforts to get Croquet working with Squeak 6.0, contributors encountered challenges requiring low-level debugging. Their focus shifted to analyzing behavior via the debug VM, aiming to isolate root causes of instability or failure.

    One may wonder why Squeak, being a self-hosting environment, might still require work in C. The environment is written in Smalltalk and is capable of building and evolving itself entirely from within. This self-hosting capability enables fast iteration, deep system visibility, and live modification of running code – all without leaving the environment.

    However, Squeak runs on a virtual machine, with performance-critical parts written in a restricted subset of Smalltalk known as Slang (Swiki link). Slang is not a separate language, but a subset of Smalltalk designed to be translatable into C for compilation. This allows the virtual machine, which is largely written in Smalltalk, to be compiled into efficient native code for multiple platforms. When issues arise at the VM level – such as those involving primitives, foreign function interfaces, or memory management – developers must drop down into the generated C code to diagnose and resolve them. You can read more about the Squeak VM on the Swiki here and here.

    The benefit of this design is excellent portability: the Smalltalk environment remains consistent across platforms, while only the VM layer needs to be recompiled or adapted for different operating systems or hardware. Having this level of separation allows the Squeak image to remain consistent across multiple platforms without exposing the underlying hardware implementation to the image code itself.

    Further analysis suggested that inconsistencies between expected and actual behavior in the virtual machine’s handling of system-level function calls were at the heart of the issue – at least for now. By carefully tracing how external interfaces were being resolved and invoked, the contributors were able to isolate a likely point of failure. The realization was met with enthusiasm, signaling meaningful progress toward resolving the issue.

    The Irony of Debugging and Systems Development

    Edwin humorously remarked that he never expected working in Smalltalk would lead him back to debugging C code – a twist that underscores the unpredictable nature of systems development. Tim Rowledge added that, during his time at ParcPlace, it was an inside joke that those who got hooked on Smalltalk inevitably ended up spending too much time writing C, while the C++ fans who joined the team found themselves writing Smalltalk instead. The irony of this unexpected reality highlights the surprising paths developers take when working with complex systems.

    Looking Ahead

    We extend deep appreciation to Nikolay Suslov for his foundational work in bringing the original Open Croquet to Squeak 5.x, which has served as a solid base for moving toward compatibility with Squeak 6.0. A special thanks also goes to Edwin and Timothy for their time, dedication, and resourcefulness in troubleshooting and adapting Croquet to modern Squeak 6.0 systems. Their efforts contribute to the broader community by preserving an important piece of Squeak history and helping to lay the groundwork for future advancements.

    The effort to bring Croquet to Squeak 6.0 is ongoing. We wish those involved continued success and invite anyone curious to jump in, contribute, and join the effort to keep Squeak a vibrant environment for innovation and exploration!

    Have a great time with Smalltalk and keep on Squeaking!

  • SqueakJS runs Etoys now

    SqueakJS-Etoys-20140704

    From Bert Freudenberg:

    Hi all,

    my SqueakJS VM has reached a major milestone. It is now sufficiently complete to run a full Etoys image (and possibly other non-closure images, too). It has support for most BitBlt modes, WarpBlt, even some Balloon2D rendering (for TTF fonts), a virtual file system, image saving etc.

    Try it: http://bertfreudenberg.github.io/SqueakJS/etoys/
    (Safari and IE are significantly faster than Firefox and Chrome, best is Safari Webkit nightly, works on iPad too, hopefully Android)

    For more details, see my blogpost:
    http://croquetweak.blogspot.de/2014/07/squeakjs-runs-etoys-now.html

    Feedback and contributions welcome 🙂

    – Bert –

  • OLPC is not dead! Long live OLPC!

    OLPC-logo

    OLPC-4.0
    Check out OLPC XO-4.

    I would hate to add to the speculation that OLPC is dead because it’s not.  Wayan Wota has been calling OLPC dead for 5 years. This is not news. He has not been involved with the project in a long time. His article is about the XO-1, apparently he doesn’t even know the XO-4 was officially introduced at this year’s CES, alongside the tablet.

    If you really want to know what’s going on with current OLPC community projects see Adam Holt’s http://www.unleashkids.org/

    Full OLPC Statement (from: http://gizmodo.com/one-laptop-per-child-isnt-quite-dead-yet-1541430670):

    OLPC’s mission to empower the world’s children through education is far from over. OLPC is thriving and making more inroads at bringing education to those who can’t easily access it. OLPC recently formed a strategic alliance with the Zamora Teran family through many of their enterprises and their philanthropic foundation, the “FundaciĂłn Zamora Teran to deliver XO laptops not only to Central and South America, but also to Africa.

    Aside from distributing more laptops in several schools in Costa Rica, Uruguay is receiving its first 50k units of the XO-4 Touch (running Android) in a few weeks’ time. In addition, the XO Tablet is currently available directly through governments and NGOs, as well as in Europe and Canada and through all major retail outlets in the United States including Walmart, Amazon, Toys ‘R Us among the others.

    OLPC also has outsourced many of the software and development units because the organization is becoming more hardware and OS agnostic, concentrating on its core values – education. As an example, we’ve partnered with the Smithsonian Museum to bring feature-rich, interactive and more targeted content to our young learners.

    We have more exciting things planned in the horizon including the implementation of very large scale projects in several regions of the world, so be sure to stay tuned.

    OLPC is a concept, it is a movement, it is a community and it is about helping children.  Sure the grand vision may be delayed, but the benefits of education and technology, of improving the human condition is not dead.  We all knew that it’s not profitable to teach third world children.  Still,  no one thought that companies would compete against OLPC.  Countries opted for different technologies for hardware but never matched the promise or the vision of the software.  Had the world united around this platform children would have benefited and the world today would be a better place as we develop together and stamp out ignorance.  There is nothing like education to improve the world and that mission is not dead.  OLPC is evolving, finding new ways to reach more children, making more with less, and finding ways to make a real difference in the world.

    Support OLPC!  Long Live the vision.

  • Spur Memory Manager Object Format Explained

    spur_gear

     

    Clément Béra just posted an excellent article explaining the new Spur Object format.  Definitely worth a read!

    Eliot Miranda has also mentioned that Spur is coming to life in Newspeak as we speak and then Squeak 5.0.

    Find out more about the Squeak VM called Cog and the new memory manager called Spur at Eliot’s Cog Blog.

  • Etoys at Maker Faire in Hannover

    BertShowsEtoys

    Etoys, children, a funny hat and a handmade Smalltalk balloon.  What more could you ask for!  Looks like a great day for everyone.

    Read more about it here: http://squeaklandnews.blogspot.de/

  • Smalltalk under the Pi: an Interview with tim Rowledge

    tim

    Don’t miss Tim’s interview with SmalltalkInspect!  You can find it here: Smalltalk under the Pi: an Interview with tim Rowledge

    In this episode we talk to tim Rowledge about his work on Smalltalk VMs over the years, especially for the RISC OS Platform and ARM machines.. The latest and probably hottest thing in this arena is his port of Squeak to the Raspberry Pi. This is not only cool in itself, but more importantly enables Raspberry Pi users to use Scratch and EToys on this little machine on RISC OS (the Raspbian Linux version existed before). You can probably imagine how much fun we had in recording this session.

     

  • Squeakfest 2013 in Uruguay

    squeakfest2013

    It’s that time again.  Time to pack up the kids and join us at SqueakFest 2013.  Don’t forget to bring your XO computer!

    If you can’t make it please consider a donation to help cover travel costs: Donate

    For more information see: Squeakfest 2013

    From Rita:

    There will be a Squeakfest again in Uruguay at June, 7th – 9th, this time in Atlantida. Etoys will cover the major part of the event, but there will also be workshops in Python, turtle art and robotics. After all, Uruguay is the country with XO-laptops in every elementary school and teachers are using the software which comes with Sugar.

    http://squeakfest2013.weebly.com/

    From our education team, Randall Caton and myself are going to present Etoys workshops. This year, I’ll introduce Kedama. I’m looking forward to an inspiring event!

    If you want to help or know someone who would like to, I created a crowdfunding page to collect money to help to cover our travel cost. Please share as you like!

    http://crowdfundedu.com/fundraiser/educators-to-squeakfest

    Greetings,

    Rita