I made the CodePen example for the three.js developers to show an error with DataTextures in connection with the positionNode. This is not due to the positionNode itself, but there is a float format incompatibility between the float type in DataTextures and wgsl, i.e. WebGPU. It will be fixed but probably not yet with r156.
What you’re doing sounds good. Doing the mesh creation in a compute shader would have the advantage that the DataTexture would become obsolete, because compute shaders can use the wgsl textureStore command to store textures directly.
This could possibly circumvent the current compatibility problem between wgsl and DataTextures.
However, I don’t yet know how to use the textureStore command in conjunction with the storage node. I asked the developers on github to create an example. It may be that this is not possible yet with r155, because I can’t find anything with workgroup_size in nodes.js in the three directory (three/examples/jsm/nodes/nodes.js). This is a compute shader specific command to set the number of gpu cores to use for the calculation.
Here is the url on the subject here in the forum. But since all this is still so new, nobody knows something about it. That’s why I suggested to the developers in github to create an example with the node system. The ability to store textures is one of the most valuable things compute shaders can do.