What is the best way to render a 500 by 500 grid of "3d 2d pixels" in a scene

To elaborate, I am making a cellular automata and the pixels are game objects, and I’m trying to figure out the best way to render these flat pixels to the scene without getting less than 30 fps.

I tried using the quad mesh with a black and white material that have shaders that allow for instancing, and I tried using Sprite Renderer with hope that using actual 2d images would improve, but to my surprise, it didn’t change, and it actually made the grid ugly.

I have a feeling I can do something with the quad again, but I need to make a special shader that just render’s a color onto the face of the mesh, and eliminates any unneeded rendering stuff.

500 by 500 quads is 500,000 triangles. That’s a lot of triangles, and a lot of game objects, especially if you’re trying to change their material frequently.

Honestly it’ll probably be faster to just have a single quad with a point sampled texture and update the texture from script every frame. When you’re using instancing, that’s effectively what is happening behind the scenes anyway; a giant chunk of data being sent to the video card every frame.