I’m a little surprised he went with SceneKit for rendering. I don’t expect it to go away anytime soon, but it also hasn’t received a lot of love from Apple in the past several years.
Edit: of course it can be great to use what you are comfortable with. Done (and really, really good, is better than perfect.
The way he is using property definitions with SetUndoableProperty seems like a really good fit for Swift’s property wrappers. Instead of writing getter and setters for every property you could just write them in once in the property wrapper definition and then annotate each property with @Undoable.