Seating Plan Generator for Teachers
Sketch a classroom, block table or walking-area cells, and move students into open seats. The solver will automatically arrange students to satisfy your seating rules.
Seating plan generator
Classroom layout
Tap empty cells to block or open them, then drag students into open seats.
Students
Add students, then drag names into open cells.
Student features
Pick a feature, then tap student chips to toggle it.
Student relations
Pick a relation, then tap students to group them.
Classroom features
Pick a feature, then tap border cells to toggle it.
Unseated (20)
About this seating plan generator
About this seating plan generator
This tool helps build a classroom seating plan from a simple grid. Add students, mark blocked cells for spaces that cannot hold seats, place classroom features such as the front, windows, and doors, then move students into open seats.
Student rules are treated as seating constraints. Up front requires a front cell, door access requires a door cell, and avoid windows prevents a student from sitting in a window cell. Together and separate rules use orthogonal adjacency: seats directly above, below, left, or right of each other count as adjacent.
When you choose to solve the plan, the browser sends the grid, anonymous student IDs, locked seats, features, and relation rules to the server. Student names stay in your browser, so the returned arrangement can be matched back to the visible names locally without the server ever seeing them.
The result is a constraint-based suggestion, not a classroom-management decision. If the tool cannot satisfy every rule, adjust the grid, loosen relations, add more open seats, or use teacher judgment to choose the best compromise. If there is demand for a soft solver, that gives best-effort solutions, when the tool cannot satisfy every rule, contact me and I'll think of a way to add it. For now, the solver is hard: either all rules are satisfied or no solution is returned.
FAQ
FAQ
How do I start making a seating plan?
Add your students first, then adjust the classroom grid to match your room. Block any cells that are not real seats, mark classroom features such as the front, windows, or doors, then drag students into seats or use Solve to ask the tool for an arrangement.
Can this automatically generate a seating plan?
Yes. Add students, mark classroom fields and student rules, then choose Generate seating plan to request an anonymized seating arrangement from the server.
What does Solve do?
Solve asks the tool to find a seating plan that follows every rule you added. It uses the open seats, locked placements, student features, and together/separate rules to look for a valid arrangement.
If no plan is found, it means the current rules conflict or there are not enough suitable open seats. Try removing a rule, unlocking a seat, adding more open seats, or changing classroom features.
What do the red student pills mean?
A red seated student pill means at least one rule for that placed student is not currently satisfied. For example, a student marked “Up front” may not be sitting in a front cell, or two students marked “Separate” may be next to each other.
What is the difference between student features and classroom features?
Student features describe what a student needs, such as sitting up front, near a door, or away from windows. Classroom features describe seats in the room, such as which cells count as front seats, door seats, or window seats.
What does keep together or keep separate mean?
Together means two students should sit directly next to each other, either side-by-side or one in front of the other. Separate means the selected students should not sit directly next to each other.
What does locking a seat do?
Locking a seat tells the solver to keep that student in that exact seat. This is useful when a student must sit in a specific place, or when you already like part of the seating plan and only want the rest rearranged.
Why did Solve fail even though I have enough seats?
Having enough seats is not always enough. The rules may still make the plan impossible. For example, too many students may need front seats, a locked student may be in a seat that does not match their needs, or several together/separate rules may conflict.
Can I make a plan manually instead of using Solve?
Yes. You can drag students into seats yourself. The tool will still show whether placed students appear to satisfy their rules, so you can use it as a manual planning board even if you do not use the automatic solver.
Are student names sent to the server?
No. The seating request uses anonymous student IDs. Student names stay in your browser so the server can return a seating arrangement without seeing the names.
Can I use nicknames, initials, or student numbers?
Yes. The names are only for your browser display. If you prefer not to enter real names, use initials, nicknames, seat numbers, or anonymous labels.
What does blocking a cell do?
A blocked cell cannot hold a student. Use blocked cells for tables, walking areas, shelves, doors, or any space where a student should not be seated.
Can I use this on a phone or tablet?
Yes. The grid is responsive, and look good on most devices. If it looks bad on your device, hit me up and I'll see if I can improve it for your screen. Don't forget to include your device type in your message so I can test it. 😄
Where is the seating plan stored?
For now, it is stored only in the current browser session. Refreshing the page resets the seating plan. Persistent save/load can be added once the planner workflow is stable.
Related tools
Oral Reading Fluency Calculator
Time a passage, mark errors and self-corrections, then generate a classroom-ready fluency report.