One way to bring an arbitrary list of positions into geometry nodes is to encode the positions into a texture.
testList.txt:
0.5 0.5 0.5 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 -0.5 -0.5 -0.5 -0.8 -0.8 -0.8
EncodeVectorList.py:
import bpy import csv filepath = bpy.path.abspath("//testList.txt") results = [] with open(filepath) as csvfile: reader = csv.reader(csvfile, delimiter=' ', quoting=csv.QUOTE_NONNUMERIC) # change contents to floats for row in reader: # each row is a list results.append(row) # The 8 here is the number of points img = bpy.data.images.new("testImg", 8, 1, alpha=False, float_buffer=True, is_data=True) # Adds an unused alpha channel for formatting reasons and flattens the list img.pixels = [item for sublist in [color + [1.0] for color in results] for item in sublist]
For Blender at least, colors are stored as floats, so any position values should be valid.
Node setup and result:

Make sure to set interpolation to closest on the Image Texture node.