A blog about the development and usage of GarlicSim, the open-source Pythonic framework for computer simulations.
Written by Ram Rachum, developer of GarlicSim.

GarlicSim Website

Twitter

GitHub Repository

Ram's Personal Website

23rd December 2010

Text

GarlicSim 0.6 released!

I’m pleased to announce the release of GarlicSim 0.6! (Installation.)

Here’s a screenshot of the GUI: (click to enlarge)

GarlicSim screenshot

(The GUI is a completely optional part of GarlicSim; You can use GarlicSim as a normal Python package by doing import garlicsim.)

This is the biggest GarlicSim release ever, comprising of around 1,100 commits made over a period of five months. This last month has been really intense; I’ve been working on this release about 10 hours a day every day. I’m so happy it’s done so now I can have a life again :)

What’s new in GarlicSim 0.6?

  • The crunching architecture has been completely revamped:
    • I made a base class BaseCruncher that all crunchers inherit from. This helps ensure that all crunchers abide by the same API.
    • I completely redesigned the way step profiles work. Now step profiles specify not only step arguments but the step function that will be used. In simpler words: What this means is that it will make it easier to use different world laws in the same simulation. In even simpler words.
    • I completely redesigned the way step iterators work. This makes it simpler to use different types of step functions in the same simpack.
  • The above changes to crunching architecture made a new widget possible: The “Crunching” widget! The crunching widget allows you to manage the different step profiles in your simulation, similarly to how you would manage your different layers in a Photoshop image. It also allows you to change the cruncher type in the middle of the simulation. I will follow up with a separate blog post on this widget alone.
  • Much much better test coverage. I added over a hundred tests!
  • Much better # implementation documentation. What I mean by “implementation documentation” is documentation inside the code which explains the implementation and not the API, which is the job of the already-extensive '''docstrings'''. So now we have great # implementation documentation and great '''docstrings'''. Only the article-style documentation needs to be improved…
  • In the course of working on the release I needed a few general Python tools. I couldn’t find what I wanted on PyPI, so I wrote them: caching, address_tools, arguments_profile, cute_profile, and a few more. I will blog about a few of these in detail in the near future.
  • I officially moved garlicsim_wx from pre-alpha to alpha.
  • Official support and binaries for Python versions 2.7 and 3.2. (Python 3.2 is supported only on the Python 3 fork of GarlicSim.) 
  • Many, many more features and bugfixes.

I’m so tired right now, and so happy I’m done with this release. Now I’ll be spending most of my time working on contract jobs before I start working on GarlicSim 0.7. If anyone’s got interesting contract projects to offer me, send me an email; I’ll be available from mid-January to start working on them.

Go on and install the new version!

Comments
All content in this website is copyright © 1986-2011 Ram Rachum.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License, with attribution to "Ram Rachum at ram.rachum.com" including link to ram.rachum.com.
To view a copy of this license, visit: http://creativecommons.org/licenses/by-sa/3.0/