In support of the Paraview pipeline between yt/pv, I wrote up a new frontend called "stream." Right now it's not unitful, but it is designed to be lightweight and to accept and transport arbitrary data around as fully-functional yt hierarchy. This could be a mechanism for prototyping new data loaders (or refactoring existing ones, frankly). There are likely still bugs in it, but a proof-of-concept is here:
To be able to project, you need to set the units with spf.units["cm"] = spf.units["unitary"] = 1.0, because I'm not yet sure how to handle that exactly. All this requires is a few parameters, the mesh, and a manner for generating or loading data. One could even imagine using this to construct arbitrary data sets in memory -- for instance, the field loader could return an analytic value for Density that matches something. In my view, this should ultimately be able to handle conversion to other data formats, and thus the generation of initial conditions or restart outputs.
Anyway, comments welcome!