Field Notes: Exploring 2D Polynomial Codes
This is a first working version of a Curious Engineering explorer for 2D polynomial evaluation codes. It lets you choose polynomial monomial regions, generate codewords as finite-field grids, view them as pixel images, and inspect Hamming-weight and brightness distributions.
You do not need to understand everything yet. Start by changing one control, watching what changes, and forming a question.
Questions to Explore
Use these cards as a guided path through the 2D Polynomial Code Explorer. You do not need to understand everything at once: play, notice, ask, and return.
What is this explorer about?
Short answer: It turns 2D polynomial evaluation codes into something you can see and manipulate.
Instead of treating a codeword as a long row of symbols, the explorer evaluates a polynomial on a finite grid and shows the result as a small image. Each cell is one value of the polynomial over a finite field.
What is the mathematical object being studied?
Short answer: The object is a space of polynomials over a finite field, evaluated on a 2D grid.
The explorer starts with selected monomials such as 1, x, y, x², xy, and y². A message chooses coefficients for those monomials. The resulting polynomial is evaluated at every point of Fq × Fq, producing one codeword.
What can I change in the explorer?
Short answer: You can change q, the monomial rule, the codeword index, the pixel view, and whether distributions are computed.
The field size q changes the grid. The monomial rule changes which polynomial terms are allowed. The codeword slider changes the coefficient vector. The histograms show how many codewords have each weight or brightness level.
What should I watch when I change the monomial region?
Short answer: Watch the selected monomial picture, the number of codewords, and the minimum nonzero weight after computing distributions.
Adding monomials usually increases the dimension, so there are more codewords. But more freedom can also create lower-weight codewords, which can be worse for error correction. This is the central tradeoff.
What is Hamming weight in this picture?
Short answer: Hamming weight is the number of nonzero cells in the evaluated grid.
If a polynomial evaluates to zero at many grid points, its codeword has low weight. The minimum nonzero weight of the whole code is the minimum distance for a linear code, so it controls how well the code separates different messages.
Why is the hyperbolic rule interesting?
Short answer: It chooses monomials using a rule connected to a lower bound on distance.
For a q × q grid, a monomial x^i y^j has a simple footprint count: (q − i)(q − j). The hyperbolic rule keeps monomials whose count is large enough. This is a way of choosing many useful monomials without immediately sacrificing the designed distance.
What is one surprising finite-field behavior?
Short answer: Polynomial patterns over finite fields do not behave like ordinary real graphs.
For example, over F5, 2² and 3² both equal 4. So a polynomial such as x² + y can have repeated rows. That is not a bug; it is finite-field arithmetic.
How does this connect to the larger field of coding theory?
Short answer: It shows how algebraic objects become error-correcting codes.
Polynomial evaluation is a major route into Reed–Solomon codes, Reed–Muller codes, affine variety codes, and algebraic geometry codes. The same broad idea appears again and again: choose a controlled function space, evaluate it on points, and study the resulting vectors.
What could a later version explore?
Short answer: A later version could add dual codes, parity checks, syndrome decoding, automorphisms, and comparisons with known code bounds.
This is a first working version. It already makes codewords, generators, and weight distributions visible. The next step is to make the hidden structure visible: symmetries, duality, decoding, and how close the code is to known limits.
Copy this prompt into ChatGPT or another AI assistant.
Leave a Reply