I'm working on tool- and technology-independent cells written in lua. The cells get translated via an interface (currently available: virtuoso, magic, svg, gds) and technology files. It works, but is pretty alpha. I'm working on a lot of things and sometimes breaking some things. That being said it is already pretty usable (especially for simpler things as inductors). See https://github.com/patrickschulz/openPCells
The documentation is not up to date but I will try to fix that asap, at least the getting started.