Extensions
  • Home
  • Add-ons
  • Themes
  • Approval Queue
  • About
  • Upload Extension
  • Sign in
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    DEVELOPMENT

    • Developers Blog

      Latest development updates, by Blender developers.

    • Documentation

      Guidelines, release notes and development docs.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

All Add-ons

Add-on CSV Importer
CSV Importer

import csv data to meshes in Blender.
Add-on by Jan-Hendrik-Müller
About What's New Permissions Reviews Version History

Version History

0.1.8 Blender 4.2.5  and newer
  • 32.8 MB (linux-x64)
  • 29.1 MB (macos-arm64)
  • 32.3 MB (macos-x64)
  • 33.1 MB (windows-x64)
  • 2397
  • March 13th, 2025

Changelog

Changelog

Version 0.1.8

  • Improved default data visualization by distributing points randomly in 3D space (values between 0-1 on each axis) instead of stacking all points at the origin

image

  • For performance reasons, the number of unique strings is limited to 3000 by default (processing this many strings takes about 7 seconds on a Mac M3)
  • Note: This limit applies to the number of unique strings, not the total count. For example, a CSV with 100,000 strings but only 100 unique values won't be affected by the limit.
  • You can override this limit when using the API directly:
import string
import numpy as np
import polars as pl
from csv_importer.parsers import polars_df_to_bob

n = 4000

random_strings = [''.join(np.random.choice(list(string.ascii_lowercase), size=10)) for _ in range(n)]
df = pl.DataFrame({"strings": random_strings, "numbers": np.arange(n)})
bob = polars_df_to_bob(df, name="TestBob",string_limit =4001)
Compatibility
Blender 4.2.5  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
2397
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.8 33.1 MB macOS Intel v0.1.8 32.3 MB macOS Apple Silicon v0.1.8 29.1 MB Linux v0.1.8 32.8 MB
0.1.7 Blender 4.2.5  and newer
  • 31.4 MB (linux-x64)
  • 27.8 MB (macos-arm64)
  • 30.8 MB (macos-x64)
  • 31.7 MB (windows-x64)
  • 1380
  • February 21st, 2025

Changelog

Version 0.1.7

  • Add support for string columns https://github.com/kolibril13/blender_csv_import/pull/21
  • update to polars 1.22.0
  • update to databpy 0.0.11
Compatibility
Blender 4.2.5  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
1380
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.7 31.7 MB macOS Intel v0.1.7 30.8 MB macOS Apple Silicon v0.1.7 27.8 MB Linux v0.1.7 31.4 MB
0.1.6 Blender 4.2.5  and newer
  • 31.4 MB (windows-x64)
  • 28.1 MB (macos-x64)
  • 25.0 MB (macos-arm64)
  • 31.3 MB (linux-x64)
  • 2396
  • January 13th, 2025

Changelog

Version 0.1.6

  • Add Reload and Hot Reload operators https://github.com/kolibril13/blender_csv_import/pull/16#issue-2782446043

shape_q8JB38xjnwPqY-cLurMz- at 25-01-13 12 40 57

  • Support for 3D vectors (with potential JSON support in the future: https://github.com/BradyAJohnston/databpy/issues/3#issuecomment-2571415664). Here's a dataframe example
import polars as pl
import numpy as np
from csv_importer.parsers import polars_df_to_bob

df = pl.DataFrame({
    "Star": [
        [58.2, 91.8, 0.0],
        [58.1, 92.2, 0.0]
    ],
    "Is_Visible": [True, False],
    "Intensity": [10, 20],
})

bob = polars_df_to_bob(df, name="Test")
  • new functionsupdate_obj_from_csv and update_bob_from_polars_df
from csv_importer.csv import load_csv
from csv_importer.parsers import update_obj_from_csv
from pathlib import Path

csv_path1 = Path("/Users/jan-hendrik/projects/blender_csv_import/docs/sample_datasets/data_california_housing.csv")
csv_path2 = Path("/Users/jan-hendrik/projects/blender_csv_import/docs/sample_datasets/data_gemeran_cities.csv")


bob = load_csv(csv_path1)
print(bob.name)
# out: CSV_data_california_housing

# Make changes to the CSV file using a text editor.
# Important note: The name of the Blender object won't change, only the underlying data.
update_obj_from_csv(bob, csv_path2)
import polars as pl
from csv_importer.parsers import polars_df_to_bob, update_bob_from_polars_df

# Create initial DataFrame with star coordinates
df1 = pl.DataFrame({
    "Star": [
        [58.2, 91.8, 0.0],
        [58.1, 92.2, 0.0]
    ]
})

# Convert DataFrame to 'bob' object
bob = polars_df_to_bob(df1, name="Test")

# Create a second DataFrame with new star coordinates
df2 = pl.DataFrame({
    "Star": [
        [1.2, 1.8, 0.0],
        [1.1, 1.2, 0.0]
    ]
})

# Update 'bob' object with new data from df2
update_bob_from_polars_df(bob, df2)
Compatibility
Blender 4.2.5  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
2396
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.6 31.4 MB macOS Intel v0.1.6 28.1 MB macOS Apple Silicon v0.1.6 25.0 MB Linux v0.1.6 31.3 MB
0.1.5 Blender 4.2.5  and newer
  • 31.3 MB (linux-x64)
  • 25.0 MB (macos-arm64)
  • 28.1 MB (macos-x64)
  • 31.4 MB (windows-x64)
  • 698
  • January 6th, 2025

Changelog

New Features

  • Drag-and-Drop: Added support for drag-and-drop functionality into windows other than the viewport.
  • API Import Call: Introduced an API for importing CSV data (note: this feature is not yet stable and may change in the future). Usage examples:
from csv_importer.csv import load_csv
from csv_importer.parsers import polars_df_to_bob

Usage Examples

  1. Loading CSV File:

    >>> from csv_importer.csv import load_csv
    >>> bob = load_csv("/Users/jan-hendrik/Desktop/data_california_housing.csv")
    >>> bob
    bpy.data.objects['CSV_data_california_housing']
    
  2. Converting Polars DataFrame:

    from io import StringIO
    import polars as pl
    from csv_importer.parsers import polars_df_to_bob
    
    csv_data = StringIO(
    """FloatVal,IntVal,BoolVal,StringVal
    1.23,10,true,Hello
    4.56,20,false,World"""
    )
    df = pl.read_csv(csv_data)
    bob = polars_df_to_bob(df, name="Test")
    

Blender Version Support

  • Supported Versions:
    • Blender 4.3.1 and later.
    • Blender 4.2.5 (requires testing, I did not try this yet).
  • Known Issue (Resolved):
    • A bug in earlier Blender versions (issue link) has been fixed.

Improvements

  • Properly skip string data when processing CSVs.
  • Added test coverage for the CSV importer.
  • Refactored the project structure for better organization.

Additional Updates

  • Use a new data wrapper using databpy by @BradyAJohnston.
  • Update to latest Polars library version: 1.19.0.
Compatibility
Blender 4.2.5  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
698
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.5 31.4 MB macOS Intel v0.1.5 28.1 MB macOS Apple Silicon v0.1.5 25.0 MB Linux v0.1.5 31.3 MB
0.1.4 Blender 4.2  and newer
  • 35.1 MB (linux-x64)
  • 27.9 MB (macos-arm64)
  • 31.9 MB (macos-x64)
  • 34.7 MB (windows-x64)
  • 2207
  • December 17th, 2024

Changelog

Rename the imported mesh from "ImportedMesh" to "CSV_filename"

Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
2207
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.4 34.7 MB macOS Intel v0.1.4 31.9 MB macOS Apple Silicon v0.1.4 27.9 MB Linux v0.1.4 35.1 MB
0.1.3 Blender 4.2  and newer
  • 34.7 MB (linux-x64)
  • 27.4 MB (macos-arm64)
  • 34.3 MB (windows-x64)
  • 31.5 MB (macos-x64)
  • 197
  • December 13th, 2024

Changelog

Build with Blender 4.3.1, which resolved a python wheels naming issue https://projects.blender.org/blender/blender/issues/130561#issuecomment-1344427

Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
197
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Approved
Windows v0.1.3 34.3 MB macOS Intel v0.1.3 31.5 MB macOS Apple Silicon v0.1.3 27.4 MB Linux v0.1.3 34.7 MB
0.1.2 Blender 4.2  and newer
  • 34.3 MB (windows-x64)
  • 27.4 MB (macos-arm64)
  • 34.7 MB (linux-x64)
  • 31.5 MB (macos-x64)
  • 28
  • December 12th, 2024

Changelog

Add drag'n'drop support based on https://docs.blender.org/api/current/bpy.types.FileHandler.html#filehandler-bpy-struct

Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
28
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Awaiting Review
Windows v0.1.2 34.3 MB macOS Intel v0.1.2 31.5 MB macOS Apple Silicon v0.1.2 27.4 MB Linux v0.1.2 34.7 MB
0.1.1 Blender 4.2  and newer
  • 34.3 MB (windows-x64)
  • 31.5 MB (macos-x64)
  • 27.4 MB (macos-arm64)
  • 34.7 MB (linux-x64)
  • 25
  • December 12th, 2024

Changelog

Apply feedback from review:

  • Move Button to File > Import menu
  • Exclude all irrelevant files
Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
25
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Awaiting Review
Windows v0.1.1 34.3 MB macOS Intel v0.1.1 31.5 MB macOS Apple Silicon v0.1.1 27.4 MB Linux v0.1.1 34.7 MB
0.1.0 Blender 4.2  and newer
  • 34.7 MB (windows-x64)
  • 27.9 MB (macos-arm64)
  • 35.1 MB (linux-x64)
  • 31.9 MB (macos-x64)
  • 30
  • December 9th, 2024

Changelog

Version 0.1.0 • Added a button “🐻‍❄️📥 CSV Import” in the World Properties tab. • Implemented CSV file import using the Polars library. • Automatically links the imported mesh to the current Blender collection.

Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon, Intel
  • Windows
  • Linux
Downloads
30
Permissions
This version requests the following:
  • Files Importing data files from disk
License
GNU General Public License v3.0 or later
Status
Awaiting Review
Windows v0.1.0 34.7 MB macOS Intel v0.1.0 31.9 MB macOS Apple Silicon v0.1.0 27.9 MB Linux v0.1.0 35.1 MB
  • About
  • Privacy Policy
  • Terms of Service
Download
  • Latest Blender
  • Blender LTS
  • Blender Benchmark
  • Previous Versions
  • Experimental Builds
  • Source Code
  • Release Notes
  • Requirements
Organization
  • People
  • Jobs
About
  • Blender Foundation
  • Blender Institute
  • Blender Studio
  • License
  • Logo & Trademark
  • Credits
  • Privacy Policy
Articles
  • News
  • Press Releases
  • User Stories
Get Involved
  • Dashboard
  • Development
  • Documentation
  • Education
Blender Studio
  • Films
  • Training
Support
  • Manual
  • Community
  • FAQ
Developers
  • Get Started
  • Projects
  • Docs
  • Blog
  • Forum
  • YouTube
  • Python API
Blender Conference
Follow Blender
Support Blender
  • Donate
  • One-time Donation
Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite