Help
Frequently Asked Questions
Here you can find answers about the algorithm, settings, usage, and the project.
General Questions
Overview of algorithm, privacy, and offline usage.
What does the mixing algorithm actually do?
The algorithm distributes your class to all available seats based on weighted criteria. It starts with a heuristic initial placement and refines it in several passes. It takes into account the criteria you have selected, such as preferred and distant partners, special needs, body heights, window/door preferences & more.
How does the algorithm evaluate neighbors?
There are three gradations of neighborhoods that are weighted differently:
- direct neighbors (highest weight)
- side neighbors (medium weight)
- neighbors across/opposite (lower weight)
These gradations help to represent free layouts as realistically as possible and to avoid conflicts in a targeted way.
Do I need an account or internet?
No. Klassenplan runs completely locally (IndexedDB + localStorage) and works offline after the first load. There is no login and no cloud synchronization. For device or browser switching, use the backup export/import.
Why doesn't the algorithm work "perfectly"?
The algorithm evaluates table groups in the context of the entire room. A swap can help in one place but create bigger conflicts elsewhere. A perfect solution would have to check every combination and would not be practical. With its heuristic approach, Klassenplan achieves fast, comprehensible results that you can further refine via drag & drop.
Class list & class management
Multiple classes, CSV import, photos, the “Attributes” view and the name game.
Can I manage several classes?
Yes. The class switcher at the top left of the header lets you create as many classes as you like, rename them, switch between them or delete them. Each class keeps its own students, classroom layouts, seating plans and recent mixes. Deleting a class also deletes its seating plans – so a backup beforehand is worth it.
How do I import an existing class list?
Use "Import class list" to upload a CSV file, the kind you can save from Excel, LibreOffice, Numbers or Google Sheets. A list from your school administration software – WebUntis, Schulmanager or SchILD, say – can usually be uploaded as it is: Klassenplan recognises the usual column names and skips a title line above the headers. The only requirement is a name column – "Name", "First name" or "Last name"; every other possible column such as gender, restless, window seat or preferred partner is optional, and unknown columns are simply ignored. Click "What the CSV file must look like" to see an example, or download the CSV template and fill it in. If your file contains several name columns or several classes, Klassenplan asks what to import.
Can I store photos of my students?
Yes. Click a student in the class list; in the inspector on the right you add a photo through their portrait. The images are downscaled and stored exclusively on this device – they are never transferred. Using student photos requires consent from the school management, the students and their parents. Photos can be shown or hidden in the seating plan, in presentation mode and in the export, and they unlock the name game for learning the names.
How do I set an attribute for the whole class quickly?
With “Attributes”, under “View” in the toolbar. The view asks everyone one question – “Who is currently restless?”, for instance – and you tap the students it currently applies to. Then it moves on to the next attribute until every yes/no attribute of the class is set.
How do I edit several students at once?
Tick several students in the list: the inspector on the right then sets gender, height, language level, social role or individual attributes for all of them at once. Search, filters and sorting above the list help you find the right students quickly.
Can I try Klassenplan without real student data?
Yes. As long as no class exists, load it from the empty class page with “Load sample class”; later you find the entry in the toolbar under “Import class list”. Klassenplan then creates a class of its own with 24 invented students, drawn portraits and a furnished classroom; your other classes stay untouched. If the sample class already exists, the same entry takes you to it. You can delete it at any time from the class switcher.
What is the name game?
The name game helps you learn the names of a new class. It only uses students with a photo and offers a photo quiz (find the name for a photo or the other way round; uncertain names come up more often) and a memory game of photo and name cards. Your progress stays locally on your device. You start it from “Class tools” in the toolbar.
Student Properties & Criteria
Overview of all properties and how the algorithm uses them.
On the class layer you record properties for every student – in the inspector, or faster in the “Attributes” view. When you mix the seating plan, they come into play through the criteria selected there. This overview shows every property, what it means and what the algorithm does with it.
Person
- Gender
Male, female or diverse – optional information.
When mixing: Creates gender-mixed table groups when enabled.
- Height
Small, Medium, or Tall – affects seating row.
When mixing: Places smaller students at the front and taller ones at the back for clear sightlines.
Learning
- High Performer
Currently showing particular strengths in class.
When mixing: Enables heterogeneous (peer tutoring) or homogeneous grouping.
- Needs Support
Currently showing additional support needs in class.
When mixing: Enables targeted pairing with high-performing students.
Language
- Language Skills
From native speaker to ESL support.
When mixing: Pairs language-strong students with beginners for mutual support.
Behaviour
- Restless
Currently showing restless behavior in class.
When mixing: Separates students with restless behavior from each other.
- Easily Distracted
Currently showing concentration difficulties in class.
When mixing: Distributes students with concentration difficulties in the room and separates them from students with restless behavior.
Seat & room
- Front seat
This student needs a front seat.
When mixing: Places this student preferably in the front rows.
- Window Seat
Prefers a seat by the window.
When mixing: Places the student closer to the window when possible.
- Near Door
Prefers a seat near the door.
When mixing: Places the student closer to the door when possible.
Preferred & Distant Partners
How preferred partners, distance wishes, and special needs influence the calculation.
Where can I see all the wishes of the class at a glance?
On the class layer under “View › Relationships”. It shows who would like to sit next to whom and who wants some distance, and marks the pairs who chose each other. Clicking a name opens that student in the inspector.
How do multiple preferred and distant partners work?
You can select up to 3 preferred and distant partners per student. The order determines the priority – the first selected partner is weighted more heavily than the third. The algorithm tries to fulfill as many wishes as possible, with Priority 1 taking precedence.
Are preferred partners always considered?
If the “Preferred Partners” criterion is set to “Consider” or higher, the algorithm seats pairs together unless other criteria weigh more heavily against it. At group tables (4/6), a seat at the same table counts as partially fulfilled.
How does the system handle restless behavior, concentration difficulties, and distance wishes?
Restlessness, distractibility and distance wishes each have a criterion of their own. Restless students are kept apart, easily distracted students are spread across the room, and distance wishes are respected as long as enough seats are available.
How does Klassenplan consider body heights and room preferences?
Body heights feed into the choice of seat so that smaller students sit as far forward as possible. Window and door preferences are stored per student and weighed against the windows and doors you placed in the room.
Classroom & tables
Tables and room elements, templates, distances and limits.
Which layouts work best?
Let your creativity run free: you drag tables, windows, doors, the teacher’s desk, the blackboard and cabinets from the toolbar into the room or put them on a free spot with a click, and move them anywhere. While nothing is selected, “Set up from scratch” in the inspector builds a floor plan in one go, and under “Templates” you keep it for other classes. The seating circle stays in sync with the table layout by default, but can also be adjusted separately.
How are distances measured?
Seat positions are stored as pixel coordinates. Direct neighbors lie within the table width and height plus buffer; side and frontal neighbors may be slightly further away until they are no longer considered relevant.
Are there limits on students and seats?
Yes. Klassenplan is designed for a maximum of 36 students. In the room, the status bar shows whether there are seats for everyone.
Can a class have several seating plans – say, one for the science lab?
Yes. A class can have several rooms, and every room keeps its own tables and plans. For the lab, add a new room under “Rooms” in the room view, such as “Chemistry”, or open a lab you kept under “Templates” – it becomes a room of the class. Set up the tables there, mix, and save with “Save Plan”. Under “Rooms” you switch between the rooms; each opens as you left it, with its seating and locked seats. A saved plan opens its room along with it. Klassenplan counts who has already sat side by side across all rooms.
Criteria & fulfilment
How you set the criteria and read how well a plan meets them.
What are recipes?
A recipe sets all criteria at once to suit the lesson. You find the recipes above the criteria:
- Recommended mix: Every criterion this class has data for, at its default weight.
- Quiet work: Separates what disturbs: restlessness, distractibility, conflicts. Front seats count.
- Group work: Wish partners, peer support and language mixing at one table.
- Written test: As much distance as possible: wishes do not count, new neighbours do.
- New class: Mix widely, leave nobody sitting alone, spread the roles.
If you then change a single criterion, it becomes “Your own mix”. “Recommended mix” takes you back to the defaults at any time.
What do Off, Consider, Important and Very important mean?
You set every criterion to one of four levels in the inspector to the right of the seating plan:
- Off: Plays no part in the mix.
- Consider: Taken into account where it fits.
- Important: Counts clearly, but yields to what matters more.
- Very important: Takes precedence over the other criteria.
Criteria your class has no data for stay hidden and do not count.
How do I recognize that a mix meets the criteria?
On the seating plan, the inspector shows the fulfilment of the whole plan at the top and a bar with a percentage next to every criterion.
What do the fulfilment colours mean?
The bars take their colour from how far a criterion is met:
- Green – Fulfillment above 80% (good)
- Orange – Fulfillment between 50% and 80% (partial)
- Red – Fulfillment below 50% (low)
How do I find the seats a criterion affects?
Move the mouse over a criterion’s bar: the seats it affects are marked in the seating plan. A click keeps the marking, a second click removes it. That way you quickly see where swapping seats by hand could improve the result.
How are percentages calculated for multiple preferred partners?
Each preferred partner counts individually in the statistics:
- Direct neighbor = 100% fulfilled
- At the same group table (4/6) = 50% fulfilled
- Different table = 0% fulfilled
Example: 3 partners, 1 adjacent (100%) + 1 at table (50%) + 1 elsewhere (0%) = (100+50+0) / 3 = 50%
What do the individual statistics values indicate?
Each criterion has its own degree of fulfillment, e.g.:
- Preferred partners: Share of fulfilled wishes (direct partner or at table)
- Distance wishes: Share of respected distance wishes (not at the same table)
- Repetition: Share of new pairs (no repetition from previous plans)
- Restless Behavior/Concentration: Share of affected students who are separated from each other
- Genders: Share of tables with balanced distribution
How does repeat avoidance work?
The repetition evaluation considers both saved seating plans and the recent mixes of the session:
- Saved plans: Pairs from older plans receive decreasing weight (newer ones count more)
- Current Session: The last mixes are weighted more heavily so that pairs do not repeat immediately
This avoids the same students sitting next to each other constantly when you mix several times in a row. Not every mix is actually put into practice, though – and that is exactly where the recent mixes on their own reach their limits.
Klassenplan therefore keeps track of which seating charts were really in use. There is nothing to tick – what counts is what you do anyway:
- Showing a seating chart in presentation mode
- Printing a seating chart or exporting it as PDF, PNG or SVG
- Saving a seating chart under a name you chose yourself
- Swapping seats by hand
Only the seating neighbourhoods and a timestamp are stored, entirely on your own device. On the first strong signal a short notice asks: if it really was just a test, one click takes the chart back out of the count.
For repeat avoidance these real seating charts are read first; mixes from the running session now weigh only half as much. A long session of trying things out should no longer drown out the result.
In the “Library” at the foot of the toolbar, a class’s “Neighbourhoods” folder shows for every student whom they have sat next to and how often – including the data it rests on, from which you can remove individual plans. “Reset” forgets every neighbourhood so far at once, say for a new school year.
Tips for unwanted results
What you can do if a mix doesn't convince immediately.
How can I improve the result?
Use a combination of the following strategies:
- Set the criteria that matter to “Important” or “Very important” – or pick a fitting recipe
- Mix multiple times to use different random starts
- Adjust individual seats manually via drag & drop and lock them if necessary so that the algorithm no longer changes them.
- Take back a poor mix with “Undo” (Ctrl/⌘+Z) or open an earlier result under “Recent mixes” in the “Library”
Presenting, exporting & tools
Interactive whiteboard, seating circle, printing and the three classroom tools.
How does presentation mode work?
“Present” at the right of the status bar – on a phone in the toolbar – shows the seating plan or circle large on the interactive whiteboard. Every control sits in one bar below the plan: teacher or student view (which turns the plan to the class’s point of view), plan or circle, photos, colours, room elements, a contrast mode for bright rooms and the size. In fullscreen (key F) the bar disappears and comes back as soon as the pointer nears the bottom edge or you tap there.
What are “Who’s next?”, “Where does who sit?” and “Build groups”?
Three tools for the lesson that also work well on a tablet or phone. “Who’s next?” draws a random student, and everyone gets a turn before anyone comes up twice. “Where does who sit?” finds a student in the room. “Build groups” draws groups from the class and keeps distance wishes apart where it can. You open them from “Class tools” in the toolbar.
How does the seating circle mode work?
On the seating plan, choose “Circle” under “View” in the toolbar. Klassenplan creates a suitable circle automatically and links it to your current seating plan. You can adjust the seats in the circle by drag & drop without changing the seating plan, and present or export it separately.
In which formats can I export the seating plan?
The export page saves PDF, PNG and SVG and prints directly – handy for letters to parents, cover folders or the school portal. You choose the seating plan, the circle or the list under “View” in the toolbar, and adjust how it looks in the inspector.
I want to print the seating plan and have the blackboard shown at the bottom as orientation. Is that possible?
Yes. On the export page, set the orientation to “Portrait” under “Page Format” on the right and leave the blackboard switched on under “Room Elements”. If your desk is at the back of the room, set the viewing direction to “From the back”. That way the printout keeps the same orientation as the classroom.
Can I print a class list to take notes on?
Yes. “Print list” in the class's toolbar opens it straight away, even before the first mix; on the export page it is “List” under “View”. Every name has room to write beside it: ruled lines for observations, or a grid of empty columns to tick off, whose heads you label yourself with a date or a topic. The order follows the tables as in the plan – so you find the right row as you walk round the room –, the circle or the alphabet.
The names on the plan are too long and too small – what can I do?
On the seating plan under “View settings › Names”, in presentation mode and under “Names” on the export page you decide how names appear: first name only, first name + last initial, or first and last name. Names that would look the same are told apart automatically – “Frida Ehrmann” and “Frida Emmerich” become “Frida Eh.” and “Frida Em.”. Names also grow when there is less on the seats: hide the markers under “View settings › Markers” on the seating plan, with “Markers” in the bar in presentation mode, and under “Markers on the sheet” in the inspector on the export page. Keep “Enlarge the plan” switched on there as well, and the tables fill the sheet.
Operation & interface
Dark mode, shortcuts, undo, the tour, tablets and installation.
Can I undo changes?
Yes, in the class list, in the room and in the seating plan and circle – so a student deleted by accident comes back with their photo, for example. The arrows in the middle of the status bar undo and redo changes, and so do Ctrl/⌘+Z and Ctrl/⌘+Shift+Z.
Which keyboard shortcuts are there?
Plenty – Ctrl/⌘+C, V and X copy, paste and cut tables, for example, and Ctrl/⌘+B folds the toolbar in and out. The question mark at the top right lists every shortcut of the current layer under “Shortcuts”; the ? key opens the help directly.
Is there an introduction to using Klassenplan?
Yes. On your first visit, a short tour shows you the most important places on every layer – from the class switcher and the toolbar to the criteria and the seating circle. The tour never blocks anything: you can keep working, close it with Esc or switch it off for good with “Don’t show again”. The question mark at the top right restarts the tour of the current layer at any time.
Is there a Dark Mode?
Yes. In the app, switch between the light and dark colour scheme with the gear at the top right; on the information pages, with the switch in the footer. Your choice is stored locally in the browser and loaded automatically on your next visit.
Can I use Klassenplan on a tablet or whiteboard?
Yes. On a tablet and an interactive whiteboard everything works by finger: dragging tables, swapping students, and a long press opens the context menu in the room. Klassenplan needs a current browser – Chrome or Edge from version 111, Safari from 16.4, Firefox from 128. If a whiteboard’s built-in browser is older, try Chrome or Edge on the board’s PC. On a phone, the three tools “Who’s next?”, “Where does who sit?” and “Build groups” are meant for the lesson; class and room are better set up on a larger screen.
Can I install Klassenplan like an app?
Yes! Klassenplan is a Progressive Web App (PWA) and can be installed directly on your device. In Chrome, Edge, or Safari, look for "Add to Home Screen" or "Install App" in the browser menu. After that, Klassenplan launches like a standalone app from the dock or start menu – faster, with its own icon, and without the browser bar.
Backups & Persistence
How data is stored locally, how backups work and how to move to a new device.
Where is my data stored?
All data is stored in the browser (IndexedDB for core data, localStorage for settings). There is no cloud, no account, and no server synchronization. Your data stays on your device and is not accessible from outside.
Can my data simply disappear?
Yes, and that is the price of nothing ever leaving your device. Everything sits in your browser's storage, and browsers clear that out under certain conditions:
- Safari, for example, deletes the data of sites you have not visited for seven days.
- “Clear browsing data”, “remove website data” or resetting the browser wipe it too.
- In a private or incognito window it is gone as soon as you close the window.
Klassenplan asks the browser for persistent storage the first time you create a class, which lowers the risk considerably — but no browser guarantees it. A backup is the only copy that does not depend on any of this. It is safest kept off the machine, on a USB stick or in your school's cloud storage.
How does the backup work?
The export creates a file encrypted with your password (at least 8 characters) containing all classes, students including their photos, seating plans, mix and usage history, seating circle, classroom features, templates and settings. Without that password the file cannot be restored – so keep it safe to avoid losing your data.
How do I move my classes to a new computer?
Through the backup file — there is no sync between devices, because there is no server.
- On the old device, click “Backup” at the very bottom of the toolbar, choose “Export backup” and set a password.
- Get the file onto the new device, for example via USB stick, a cloud folder or an email to yourself.
- On the new device, open Klassenplan and choose “Import backup” – on the empty class page or, if a class already exists there, under “Backup” at the very bottom of the toolbar.
- Pick the file, enter the password and confirm “Replace everything”.
Your classes, students including photos, seating plans and templates are then on the new device. The file works on any operating system and in any browser. Without the password, however, it cannot be opened.
How often should I make a backup?
For example after creating a class or after setting up and saving a classroom. Klassenplan reminds you once your last backup is more than 30 days old. You can postpone that reminder or switch it off for good via “Stop reminding me”.
What happens when I import a backup?
You choose between "Replace everything" and "Merge". Replacing overwrites existing students, seating plans and templates with the backup – this cannot be undone. Merging adds students and seating plans from the backup to the existing ones; the classroom and settings then come from the backup.
What happens to my backup after a Klassenplan update?
Backups are backward compatible and are meant to stay that way – should that ever change, I will provide an extended migration tool. New versions automatically migrate older backups. After major changes, it is worth creating a fresh export so that you have secured the latest structure.
Project & Support
Information on costs, updates, and how you can contribute.
Does Klassenplan cost anything?
No, Klassenplan is a free tool that I work on in my free time. I originally developed Klassenplan for my own needs (with the help of Claude Code) and I am happy if it helps you and you like using it. If you like Klassenplan and would like to support its hosting costs as well as further development, I would be happy about a donation via PayPal. You can find all info under “Support” – in the app at the very bottom of every toolbar. Thank you!
How do I get updates?
When a new version is available, Klassenplan asks whether to load it – your data stays as it is. With the gear at the top right you can also look for updates yourself. What has changed is listed in the changelog.
How can I give feedback or participate?
You can send a message at any time via the feedback page. I look forward to practical experiences, bug reports, and feature ideas.
Klassenplan is open source: you can view the source code, report bugs, or contribute your own changes. View the project on GitHub
Under which license is Klassenplan released?
The source code is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later). You are free to use, modify, and redistribute Klassenplan – including your own customized versions – as long as you release them under the same terms and disclose the source code. If you run a modified version on a server, its users must be able to access the corresponding source code.
You can find the full source code on GitHub.
Still unclear?
If your question was not answered here, please write to me via the contact page.