Attrio CSV enables per-frame evaluated dependency graph data to be exported as a series of CSV files for external analysis or modification. These CSV files can later be reimported into Blender as point cloud data using custom Geometry Node trees and the CSV Import node - for further modification and use, or to reduce depsgraph computation complexity by referencing stored data.
The active object is always used as the data source. When the active object is of type Mesh or Point Cloud, users can choose a valid attribute domain from a contextual dropdown menu. Once a domain is selected, clicking Refresh Attributes will populate a list of available attributes on that domain. Users may select any combination of these attributes for export.
An optional Export Frame Range toggle allows for baking across a start and end frame. When enabled, a separate CSV file is written for each frame in the range.
Note: Depending on frame count, selected attributes, and precision settings, this can result in large total file sizes.
When the frame range is disabled, only the current frame is exported. In either case, the output filename uses the format:
[name]_[####].csv
Where #### is a four-digit frame number with leading zeroes.
Note: Including
_(underscore) within naming will export correctly, but will break the import parsing system, do not include underscore inNameif you intend to import back into Blender using Attrio import methods.
The full path for each exported CSV follows this structure:
[directory]/[subfolder]/[name]_[####].csv
0023).This system ensures exported files are grouped cleanly by run, allowing easy batch import and reuse.
This export behaves similarly to a "spreadsheet to CSV" operation, with a few critical distinctions:
. and hidden in the spreadsheet) are never included.position_x, position_y, position_z.Custom-named attributes and named outputs are supported as long as they match supported types and valid domains.
To balance file size and accuracy, two precision modes are available:
CSV files written by Attrio CSV can be reimported into Blender for use in Geometry Nodes. Each CSV represents a single frame of data.
Import relies on the same Directory, Subfolder, and Name settings used during export. If valid files are detected, import options will appear.
Creates a new MESH object with a Geometry Node modifier that loads point cloud data from the CSVs. Data is read from the current scene frame, or manually via a Frame input on the modifier.
(only shown when position attributes exist)
Creates a mesh object with Geometry Nodes that interpret the CSV position attributes and reconstruct the point cloud per frame. This demonstrates how to parse and animate point-based position data from Attrio CSV.
An additional Use Source Mesh option allows transferring this position data to another mesh—effectively deforming its vertices to match the CSV frame data. This is useful for mesh-based playback while maintaining a link to other attributes.
In both import types, additional attributes can still be parsed from the point cloud and remapped to other domains as needed.
By default, data is synchronized with the scene frame. A Use Scene Time toggle is available in both node groups:
Frame input manually.Note: Data is only valid when either:
Use Scene Timeis enabled and the current scene frame has a corresponding CSVUse Scene Timeis disabled and theFrameinput matches a valid frame file
Corrected accidental zip included inside build
This extension does not require special permissions.
there should be a way to access this info, but I didn't force this because it is not as straightforward. Theoretically, you may be able to store these values in geo nodes as a custom named attribute on 'points' that are representing your curve.
Also your intuition is right, this functionality has been floated by the Blender dev team, but has been delayed over time. Making this extension has revealed to me why-- it's not as straightforward to do as I assumed, and could get especially tricky with volume fields. There would need to be a lot of difficult decisions made on parsing and format. We may get this as a built-in function eventually, but I think requires more stability in geometry nodes to be full featured.
Perfect, I am surprised this isn't already a function within Blender.
Is there a way to do this for curves and instances along curves with stored attributes (Index, Location, Tangent etc)?