-
-
Notifications
You must be signed in to change notification settings - Fork 61
Description
Currently functions like Plot3D generate Graphics3D objects that represent the mesh to be plotted as a List of Lists. For large meshes this is inefficient in space, and very inefficient in time to generate and consume for display. For example, generating and displaying a Plot3D with a useful degree of resolution takes many seconds, so is not feasible for interactive plotting with Manipulate.
A NumericArray implementation backed by NumPy arrays will greatly improve performance. Initial prototypes show orders of magnitude improvements in performance, allowing for example interactive plotting at useful resolution with Manipulate.
In addition I expect this could be useful for CSG operations on solids, where the boundary of the solid would be represented by a mesh stored as arrays.
I suggest a staged approach to implementation. Features to be implemented eventually:
- NumericArray atom
- NumericArray builtin
- Normal
- NumericArrayType, NumericArrayQ
- Equal, Length, ByteCount
- First, Last, Part, Take, Drop