10/05/2012

Resuscitating Nanoengineer on Kubuntu

Nanoengineer has been unsupported for at least five years, and it shows. The 1.1.12 source zip file apparently contains corrupted files, and the code relies heavily on the deprecated python-Numeric.
Getting the more recent 1.1.14 sources wasn't too hard: "Install" the Windows executable on Wine (doesn't work, btw) and make sure to tick the 'sources' checkbox in the list of installable components. Copy them from ~/.wine/drive_c/Program Files/Nanorex/NanoEngineer-1 v1.1.1.14/source.
Additionally, I only needed to install python-bsddb3 (via apt-get), but I already had a quite substantial python environment (e.g. PyQt4).
Updating the python code to work with numpy was pretty tedious. Applying converttree from numpy.oldnumeric.alter_code1 resolved some issues (and created a few more via unwarranted replacements). After that, I ran repeatedly into the following problems (method: run code, crash, repeat):
  • if variable: doesn't work. Use if variable != None:
  • Neither does if array1 == array2: / array1!=array2:. Use if (array1==array2).all(): or if (array1!=array2).any():
  • the bugs mentioned in this ubuntuforums thread (there's also a list of required packages)
This got me as far as creating DNA objects, cutting and linking strands. There might still be the occasional bug with cross products etc.
Anyway, here's a patch file.
Put it in the cad subdirectory of your Nanoengineer sources and run patch -p0 -i nanoeng.patch. To start Nanoengineer, run python main.py from the cad/src subdirectory.
Note: I tried this method again in a Fedora 14 Gnome environment and the program crashed on something openGL related. I should probably test this again in a virtual non-KDE sandbox.



No comments: