After more than a year of inactivity, there have been several major improvements over the last few days:
- Firstly, and most importantly, slmake is considerably faster, especially when building large, dense constructions. It has no difficulty building the ECCA (4943 cells), completing both the construction and the defragmentation within 3 hours.
- A diagonal sweep-line sort order is used, so it prefers to construct objects closest to the source of slow gliders (which will be most accessible), thereby avoiding wasting time attempting to construct inaccessible objects. (The exception to this is that bespoke objects are prioritised above everything else; maybe I should try disabling that?)
- A recursive approach is used, where slmake dynamically identifies subproblems during construction and restricts attention to those. This both improves performance and means that less defragmentation is required at the end. Subproblems correspond to an obelisk-shaped convex region, with thick walls of empty space and slightly tapered boundaries to help ensure that the construction does not interfere with objects outside the subproblem.
- slmake now saves a progress file after every step. This will be called currentN.mc where N is the recursion depth (0 if it's handling the main problem, 1 for a subproblem, 2 for a subsubproblem, and so forth).
- In particular, at the end of construction there will be the raw non-defragmented slow-salvo recipe in current0.mc. (This only includes the construction, not the movement of the initial hand block.)