Changelog
All notable changes to PetitMaker are documented here.
The format is based on Keep a Changelog, and this project aims to follow Semantic Versioning.
[1.4.18] - 2026-09-19
Added
- Notes includes a Measure tool on shortcut 5 that counts cells between two endpoints, including both end cells. Measurements snap horizontally or vertically, lie on the map in 3D, and let you drag either endpoint to resize or flip the number to the other side, while note regions show their width and height as you draw or select them.
Changed
- Help now starts each page with a short summary and where to find the feature. Instructions and answers stay visible, Notes includes a visual entry guide, and What’s this? now explains controls inside panels and dialogs with a customizable Shift+H shortcut shown after the tour.
- Number shortcuts now follow each toolbar’s order, with Brush shape on 5 in terrain editing and 6 in Notes, and Q cycling the final options group. Keyboard Shortcuts shows the assignments for each toolbar.
- PetitMaker now uses less data on first load and prepares icons and fonts before the loading screen closes.
- The Notes toolbar now uses the same grouped controls as terrain editing, with selection outlines and click targets that follow tags in 3D. You can choose brush shapes, font sizes and route styles directly, and put down a Notes or terrain tool by clicking it again, repeating its shortcut or pressing Escape.
- Picture generation now includes portraits of Heyu, Manna and Tika. Neighbor portraits now use more localized names.
- English object names now match the game terminology for bridges, steps, neighbor houses and selected flowers. Previous names remain searchable.
Fixed
- The assistant’s reasoning follows new output while you read at the bottom and preserves your position when you scroll up. You can reopen completed plan stages and collapse expanded operation lists.
- Help preserves your reading position while the object search demonstration updates.
- Yunguo's Bamboo Harvest House and Medowlyn's Floofy House have a 5×4 footprint, with matching 3D proportions and space to pave in front of the door.
- You can pave and repaint roads on dry ground beneath bridges between mountains.
[1.3.17] - 2026-09-18
Added
- Moving objects in 3D shows the solid model at the destination and a white dashed outline at its original position, helping you see where it will land.
- The eraser offers line and curve shapes with Auto Trim, and keeps the curve footprint visible while you adjust it. With the brush or eraser, drag the first segment or click to place points, then double-click to finish and adjust the curve.
- PetitMaker (Lite) lets you plan maps offline in Xiaohongshu, with terrain and object editing, Planet and Maze generation, 2D and adaptive-resolution 3D views, and local saving in a landscape workspace. Use the tour and Help to get started, then compose a picture with titles, layer previews and 3D views in Save and share to save to your album or create a note, and include PetitGlyph to reopen the map from the picture.
Changed
- The Chinese interface now displays DeepSeek as 深度求索/DeepSeek in the assistant’s provider selection and setup guidance.
- The terrain toolbar now groups Brush, Eraser, Edge Cut, and Smart build in one compact row, with visible shape and Auto Trim options, separate remembered brush settings, and selected option names expanded when you open the toolbar. The default shortcuts are 1 to 4 for tools, 5 to cycle shapes, and Q to cycle Auto Trim.
[1.2.46] - 2026-09-17
Added
- Share images gain protection for original work by keeping the creator's title and description when someone imports a handmade map, makes only small changes and exports it again. You can freely edit those fields in your own exported images recognized by this browser, and in procedurally or AI-generated maps.
Changed
- The map's title and description are one record shared by the image export, the JSON file and the share code. Type them once in either export window and they travel with the map; The title holds up to 48 characters and the description up to 200. The JSON file no longer carries an author field.
- Every import asks first. Whether a map arrives through the Import window, a paste, or a drop anywhere on the page, a card shows its picture, title and description before anything changes, and warns when the map you are working on would be replaced.
Fixed
- Images larger than the browser can hold, such as an Original export, import at a reduced size instead of being refused.
[1.2.45] - 2026-09-16
Added
- Immersive mode lets you edit the map in full screen on supported browsers, including Safari on iPad. Open it from Settings next to Replay the tour. On mobile devices, the tour's opening card and a menu tip offer a shortcut.
- A menu tip points to Help after you finish the tour.
- The assistant shows a reminder that it can make mistakes while waiting for instructions. Its key setup screen now links to the guide for getting an API key.
- A What's new window shows returning visitors the updates since their last visit. It opens once per version and links to the full changelog in About.
- PetitMaker can now be installed as an app on phones and tablets through supported browsers. Launch it from your home screen to edit in its own landscape window.
Changed
- The assistant's visible reasoning now follows the language of your messages, as its replies do.
- Phones and tablets in landscape use a smaller default interface size to leave more room for the map. The UI scale slider adjusts its upper limit to fit the current window.
- The browser compatibility notice now covers outdated browsers as well as in-app browsers, with download links for the latest Chrome and Firefox.
- Version information copied from About now includes browser details to help with troubleshooting.
- The station has been removed from the facilities shelf, search results and the assistant's placement options. Existing maps keep any stations already placed.
- The interface, Help and documentation now use consistent terms for planets and editing features.
- QQ feedback has moved to the PetitMaker channel, linked from About and the Contact page. About also offers email alongside GitHub Issues.
- The contact email for privacy, security and other requests is now petit.maker@outlook.com.
Fixed
- The assistant's Thinking effort control appears for supported models even when model information is slow to load or unavailable.
- Mobile windows, the assistant panel and the loading screen fit the visible area when browser toolbars are shown. Tall windows scroll internally to keep their contents accessible.
- The keyboard shortcuts window fits small screens, keeps the keyboard visible where space allows, and has a close button.
- Tour cards fit screens with limited height. Cards, the assistant character and sliders are also positioned correctly in older Android browsers.
- The assistant character stays in place when you open and close Help pages containing editor illustrations.
- Browsers that cannot run the app show a compatibility notice with browser download links. If part of the app fails to load, a message offers a reload.
- The map view recovers from graphics interruptions, including blank maps or dark 3D views when returning to a background tab.
- Original exports preserve the same image dimensions across devices and show progress when exporting large images on devices with lower image-size limits.
- Exports from older browsers correctly include the title, description and notes.
- Devices that do not support 3D show it as unavailable, and the tour skips the related steps.
- Touch gestures in the 3D view and on curve handles control the map without triggering page scrolling or refresh.
- Autosave saves pending edits when you switch away from the tab or put the browser in the background.
- Saving assistant settings works in private browsing without disrupting the panel.
- Map generation reports processing failures so you can retry. Built-in illustration tasks that take too long stop with an error message, and the style list shows the options your device supports.
- Older Safari versions correctly handle annotation dragging and assistant tasks, and display the background color of the assistant's paused-task card.
- Android controls use the app's tap feedback, and scrollbars retain their rounded appearance across browsers.
[1.1.15] - 2026-09-15
Added
- Open GitHub Issues from About or click the Chinese-language PetitMaker QQ feedback group card to copy its number. The Contact page also lists the group.
- Pick an object, road, mountain, or water sample directly from the map with the selection eyedropper. Its placement tool and matching bottom panel open so you can keep building without searching the catalog. A compact toolbar keeps selection actions readable at every map zoom in 2D and 3D. Objects limited to one per map are excluded.
Fixed
- Assistant setup lets you choose the provider and region for keys whose format is shared by several services. Connection checks use your selected endpoint.
- Space-drag panning remains available after selecting an editing mode or using view and undo/redo controls, without repeating the last button action. Holding the pan key immediately shows the move cursor, and releasing it restores the tool cursor. Keyboard focus outlines clear when returning to pointer input.
[1.0.51] - 2026-09-13
Added
- The About window and About page show an acknowledgements row for community members who supported the project.
- JSON export has a separate planning-annotations option, enabled by default. Turn it off to save the map without annotations while keeping the working map intact.
Changed
- The About window uses a wider layout on desktop: the brand and version across the top, the team and acknowledgements beside the documents and support links, and the disclaimer along the bottom. Narrow windows keep the single column.
- Export previews use one loading indicator with animated task labels.
- Annotation chips can be selected and moved while the chip tool is active. Select a note before dragging it. Workshop and Ranch are no longer offered in the tag list; existing notes remain readable.
- Selected regions are easier to distinguish in the 2D view.
- Updated legal pages and sharing guidance with clearer explanations of saved data, optional online features, content responsibilities and asset permissions. Chinese wording is more natural, with equivalent updates in English.
Fixed
- Centered lettering in annotation chips and numbered badges, restored the complete selection outline around chips, and made existing labels follow language changes.
- Selecting a region for the assistant temporarily hides the editing panel and restores it afterward, keeping its previous settings.
- The region highlight used for scoped generation and the assistant now follows you between the 2D and 3D views instead of disappearing until region selection is opened again.
- Sharing as an image with the grid on no longer bakes the region highlight into the picture.
[0.11.10] - 2026-09-11
Changed
- The assistant's undo reaches only the edits it made in the current job; earlier manual work stays in place. In checkpoint mode, area clears, road networks, delegated tasks, and undo ask for approval on every call, including after a plan is approved.
Fixed
- A key pasted on the connection screen is tested only against the built-in providers whose key format it matches. A saved custom endpoint receives a key only when you choose it.
[0.10.49] - 2026-09-11
Added
- Patreon and Afdian support links on the project page and in About.
Changed
- About lists the team first, with sponsorship below the legal documents and a GitHub link below the version details. Graphics diagnostics are removed.
- Mountain Smart Build sprays local mounds: hold to build higher terraces or drag to grow a ridge, with one undo step per stroke. Roads connect chosen points or building entrances, using legal bridges and ramps when they improve the route and keeping crossing approaches aligned. Rivers support adjustable bends, pond connections and waterfalls. Previews include support and crossings, and adjustments can be undone separately. Each terrain surface has one action directly on its Smart Build button; Connect all is removed from the road toolbar.
- Image generation accepts regions from 7×7 cells, with more detailed sampling for small regions. Regions with both sides at least 20 cells keep their existing output.
- Generator thumbnail errors use shorter, consistent area messages with a clear warning badge above the text. The area pill keeps showing the selected cell count without repeating the error.
- Planning notes use a fixed set of fourteen tags instead of typed names. A zone carries one tag, and the text note is replaced by a tag chip. Saves and share images from earlier versions open with untagged zones and without their text notes.
- A zone can be drawn in several strokes: strokes gather into a draft until Done, a stroke that starts inside a zone extends it, the eraser removes cells, and a click inside a zone selects it even while a brush is active.
- Routes can be drawn with one drag and keep adjustable anchors; pressing near an existing route selects it.
- The Connecting the agent help page walks through getting an API key from each supported provider, with links to the provider consoles, and answers who bills for the agent's use.
Fixed
- Floating toolbars and color strips allow canvas strokes to start in their shadows and gaps while keeping the controls interactive.
- Large interface scales and narrow windows reposition corner actions and fold the lower controls before moving expanded layers aside. Undo and redo stay aligned on the right; each scrolling row clears only the controls at its height. The displayed scale fits the available workspace while preserving the saved preference.
- Brush sliders align with their tool rows and keep their hover readings visible. Image-generation sliders use the same track length as other generators.
- Small interface text adapts its weight to its visible size, display density and language, while normal text and headings retain their emphasis.
- The assistant character follows window and interface-scale changes without remaining at its previous position.
- Text generation preserves detached marks and counters more reliably and avoids unnecessarily thick junctions in small regions.
- Terrain painting and erasing now target the block beneath the pointer in both 2D and 3D, keeping the ghost and edit aligned.
- Assistant edits that are only partly rolled back now report the changes kept on the map and include them in edit counts.
- Assistant Stop and Pause respect pending approvals and waits between edits. Cancelled streams cannot overwrite a new session, and an unshortenable context overflow ends with an error instead of repeating requests.
- Malformed saved assistant events now open the existing recovery flow instead of breaking session restoration.
- Help opens without generating or capturing illustrations below the visible page; demos start after the entrance animation. Deep links scroll once the destination section is mounted.
[0.9.334] - 2026-09-04
Fixed
- Text generation now fits font strokes to the selected region, including small rectangles such as 5×5 and 5×6 cells. Letters and digits retain their gaps, enclosed spaces, and lowercase details; larger text keeps the font's curves and proportions. Dense characters receive stronger stroke checks, emoji retain contrasting interior details, and mixed text is fitted by character type. Input preserves joined emoji and combining marks and supports Chinese and Japanese composition.
- Painting roads on maps with large road networks no longer stutters. Picture candidates based on road materials also generate faster because edge-fade geometry is no longer recalculated repeatedly for the entire connected surface on every brush frame.
- Flowers and shrubs can now be planted on the Garden Stone, Park Stone and Simple Flowerbed paths, matching the plantable surfaces in the game.
- When the Keyboard Shortcuts window is narrower than the keyboard layout, a visible horizontal scrollbar now provides access to the full layout.
- When the object shelf's category names are wider than the room and the row scrolls, choosing a name near the far end no longer snaps the row back to its first name; the chosen name stays in view.
- Authorship records are now preserved consistently. Changing planets carries provenance with transferred content; moving or rotating an object retains its author; repainting a cell with identical content does not change its author; share-image imports retain their AI and procedural disclosures; and save imports reconcile provenance with the content that loaded.
Changed
- The international website moves to petitmaker.cc. Page titles and search metadata follow each deployment’s language, with updated canonical URLs and sitemaps.
- Importable share images use a shorter, fixed-height PetitGlyph ribbon with four sage tones and no text inside the code. Improved error correction makes resized and recompressed images easier to recover. Very dense maps include a recommendation to share the original file. Version 1 and 2 share images remain readable.
- Generating an island now plans faster, most visibly on lower-end machines, and the result for any given seed is unchanged.
- Returning to a generation type now restores its existing candidate cards immediately instead of rebuilding them. Custom recipe numbers are also restored for procedural, letter, and picture generation.
- Each generation type now keeps its own candidate batch and recipe number. Requesting a new batch for one type does not change another type's candidates.
- Painting roads recomputes only the surface under the brush instead of every road surface on the map, so paving stays smooth on maps already dense with streets.
- The startup wordmark now follows the deployment target. The international site uses the English wordmark and the mainland-China site uses the Chinese wordmark throughout startup.
- Settings now includes a visual preview of the current keyboard bindings, with each key colored by function category. The preview updates when bindings change and opens the Keyboard Shortcuts window when selected.
- Undo, Redo, and the two interface-scale commands can now be reassigned on the Keyboard Shortcuts page. Interface-scale shortcuts remain available while a dialog is open; shifted forms of their assigned keys remain reserved because they share the same physical keys.
- Scrolling now zooms the 2D map around the pointer, matching 3D navigation. Mouse-wheel steps, touchpad scrolling, pinch gestures, and horizontal scrolling all zoom; right-button, middle-button, Space-drag, and keyboard controls continue to pan.
- A plain export with all optional sections disabled now contains only the map, without a card border. When per-layer previews are disabled, the map uses the full card width. Every exported image includes an attribution band and app logo.
Added
- Three paths newly added to the game join the catalog: Maizeglow Brick, Tilled Soil and Rustic Dirt. An old save or share code paved with the retired plain dirt road now loads as the Rustic Dirt Path, the game's own plain track.
- A built-in Help Center, available from Help in the menu, covers getting started, camera controls, building tools, generation, planning, saving and sharing, the Agent, and settings in every supported language. Its demonstrations run the editor on a real map region, and interface figures use live controls. Search covers pages and questions; the question-mark button enables a context-help mode that opens documentation for the selected control.
- A plan-notes layer for whole-island planning: paint named, numbered zones, place text labels (map lettering or a colored chip), and draw route arrows whose anchors stay adjustable after the line is drawn, with the same direction handles the terrain curve brush has. A zone's caption is its grab handle; Ctrl-click or a Ctrl-drag band gathers several notes, Ctrl+A takes them all, and a gathered set moves, recolors and deletes together; gathered zones can merge into one. Everything lives on its own layer with an eye and a lock in the layer panel. Notes render in both the 2D and 3D views, follow the terrain in 3D, save with the map and importable PetitGlyphs, and can be shown or hidden in the exported picture independently.
- When exporting a 2D share image, the map can now be restyled as an illustration. Built-in procedural and on-device model styles draw locally without an API key or network request. Online preset styles and a custom description use an image service selected from the current provider menu and connected with your own key. Every model-drawn picture, local or online, carries a small corner mark noting that AI drew the illustration; purely procedural pictures do not. All styles stand in one list with a render-time meter, and several takes can be generated per session, compared with the original, and swapped before export. Asking a built-in style again draws a fresh variation rather than the same picture.
[0.8.39] - 2026-08-27
Changed
- The share picture waits for you to finish typing. While editing the title or description in the share window, the preview used to redraw on every change, which with an IME meant on every keystroke. It now holds still until the text has stopped changing for a second, then updates once, and it no longer blanks to a loading spinner while the restore strip rebuilds for a new title.
- The object shelf remembers your selection. Switching to another mode to sculpt terrain or lay water used to reset the shelf to its first category. Coming back now reopens the category you were in, with the item you had selected still armed and ready to place.
Fixed
- Ramps place evenly on every side of a hill. The edge detection favoured a cliff's right and bottom: a ramp could hug the right end of an edge but not the left, and aiming onto the plateau reached deeper from the south and east than from the north and west. All four faces and both ends now accept the same positions.
- Safari draws the hairline edges the way other browsers do. The thin outline on the round buttons, name pills and drawn controls rendered about twice as wide and soft in Safari, and fragments of it could linger on the map while a button's name pill opened and closed. The edge is now crisp and nothing is left behind.
- Every screen-reader label speaks the interface's language. Two labels were hardcoded in English whatever the locale: the export help bubble's button and the curve tool's draggable points. Both now translate with the rest of the interface.
- The motion demo's pinwheel spins on its own centre. The fan in Settings turned about a point just below its hub, so it wobbled instead of spinning; it now rotates exactly on the hub.
[0.7.781] - 2026-08-26
Added
- A new assistant panel. The assistant is a standing column beside the map now, not a chat window. Its desk carries one card that says what the session is doing (waiting for an order, thinking, building, holding, or stopped), and the record beneath it is a paper trail: the order you gave, a plan you can approve stage by stage, one line per step with what came of it, and a receipt when the job settles. A step the game's rules refused says so in your own language, with the rule's own category leading the reason. The receipt turns over to show what was built and what a rewind would take back. With no key held the panel rests instead of asking for one: the assistant sleeps at her desk, the card wears a beta tag, and the board beside her shows the kinds of order she would take, with one Connect button into the setup form. Before signing off on a build, the assistant reads its work once against your order's own words and repairs what falls short, and its building knowledge is written from expert players' finished maps, so what it composes follows the way people actually build.
- The assistant panel can be docked to either side of the window. A round button on the panel's top corner pins it to the side of the screen, where it stands the full height of the window, and the rest of the editor moves over and fits itself into the room that is left, at one size: the mode row, the bars, the corner controls and the panels all scale together rather than being covered. Docked, that button and a second one below it stand at the panel's top right whichever side it is docked to, and only the card beside them keeps clear of their spot: everything below runs the panel's full width, the keyless rest stands all of its example orders at once, and the idle sketch card sits down by the message box. The second button moves the panel to the other side, and the whole interface changes hands with it. The record gets the height the panel used to give up to the bar below it. Both choices are remembered, so an editor that was left docked on the right opens docked on the right the next time the assistant is pressed. A window too narrow for the interface beside the panel sets it free again and says so, and docks it back when there is room; the control stands and explains itself meanwhile.
- Docking reads as the interface sliding aside to reveal the panel underneath. The floating panel folds away with the assistant, together, and only then does the rest of the editor slide over, carrying the panel into view as the ground it was standing on all along. The panel slides in behind the leaving interface rather than lying still under it, so the two read as two layers parting and settling flush. Undocking runs the same way round: the interface comes back over the panel, and the floating one unfolds again from the assistant's own corner, with her. Moving the dock to the other side is one crossing rather than two slides: the interface passes over the panel without stopping in the middle, and the panel changes ends while it is covered.
- The map holds still through all of it. The island keeps its place on screen while the editor slides aside and while it comes back, in both the flat view and the 3D one, so nothing jumps at the moment the map settles into its new width.
- You choose how closely the assistant is watched. Ask before every edit, ask only before a wide one, or let it work. A question stands as a card in the record with the plan or the call it is about, and answering in words instead of pressing Approve sends the words as guidance and cancels the call. A run of answered questions folds into one small deck where it stood, showing the count and the newest verdict; a press fans it back out, and the question still waiting always keeps its full card.
- Every take-back is offered where the work is. A settled job offers to rewind the whole job, and a plan's steps offer to rewind to any one of them, each behind a confirm that says how many steps come off the map and how many of them are yours. A job built on a different map offers nothing, and says why.
- The assistant can be steered while it works. Sending a message during a job queues it as guidance for the next step rather than starting a second job, and a queued note can be taken back before it is delivered. Stop asks first, on the card, and a stopped job keeps whatever it had already built.
- Nine platforms, and any OpenAI-compatible endpoint besides. The setup screen takes a key, works out which platform it belongs to, and checks it quietly on its own once you stop typing, with the model row naming what the connection will run. A key it cannot place is offered a chooser rather than a guess. A custom endpoint can be pointed at any compatible server, including one on your own machine.
- The assistant sketches ideas on your island while it waits. At rest the panel draws one proposal at a time on tracing paper over a photograph of the open map: a lane where nothing has a road to it, a pond in a hollow, a stand of trees on a bare slope. Pressing one puts it in the composer as an order, ready to send or to edit, and sends nothing by itself.
- An order can be as long as it needs to be. The assistant's message box grows a line at a time as you type, up to four, and then scrolls. Past that a button beside it opens the same field as a floating card with room to write a whole paragraph and read it back; closing the card puts the field back in its place with everything you wrote. The button appears only once the text no longer fits, and the card and the box are never both on screen: one field, at the size the order needs.
- A clearer Settings panel. Everything now sits on one card, and most settings show their effect instead of describing it: the map toggles and the quality choice are small pictures of a map, the size slider scales a sample as you drag, and each motion option demonstrates itself. Languages are listed in their own names.
- Motion, grid lines and chunk boundaries are now remembered across visits.
- The welcome tour covers the 3D view, and shows each gesture rather than describing it. The tour now stands the map up in 3D partway through, explains how to look around there (right-drag or middle-drag turns the island, left-drag moves across it, and the wheel brings it closer) and says that every tool works on the 3D surface, then lays the map flat again before it ends. The steps that teach a movement now carry a small drawing that performs it on a little map: the pointer, the mouse key it is holding, the trail it draws, and the map panning, turning, coming closer or taking a brush stroke under it. A step that works with any mouse button demonstrates them one at a time, a whole gesture each, so nothing reads as three buttons pressed at once, and a scroll is drawn as a rolling wheel rather than a held one. Under reduced motion each drawing stands at the end of its gesture, with the trail drawn and the key that was held still filled, so the instruction survives without the loop.
- Pictures can be paved, or planted with one family. A picture's material row offers Paths beside Mountain, Water and Mixed: a picture matched against the game's own path surfaces, laid as flat ground with a drawing on it. A picture can also be planted with flowers only or trees only, which matters in game, where a tree stands far taller than a bloom and a picture tiled with both at once reads as a mess. Paving is quick even on a picture that paves every cell: a picture 160 cells across lays its paths in a fraction of a second.
- Mixed builds a composition, not a palette. The Mixed material builds a picture's ground out of terrain, mountain and water both, so an area that is genuinely blue becomes a real pond, and then sets flowers at the points that carry the picture: where it changes most, and where its colour is furthest from anything the green ramp can say. Trees are left out of it, since a tree stands far taller than a bloom; a picture that wants trees asks for Trees.
- Generate builds a designed island. The island kinds now run a new generator that builds the way a player does: it lays out places around the plaza, gives each a look-out and a mountain behind it, threads a road hierarchy through them (wide streets to the buildings it must reach, narrower ones to everything else, no dead ends), terraces the ground the town stands on, and composes each place in one palette. Every building and facility in the catalogue appears exactly once, which the old generator did not manage.
- Naturalness is now Scenery richness. The slider means what it always moved: how full a place the island is. Turn it down for a flat garden town with flower beds along its streets; turn it up for a terraced island with water on every layer, orchards and a set piece written into the far wall. Earth, Water and Mixed still mean what they are named after: Earth gets no water at all, Water spends more of the island on it.
- The map says which planet you are on. Arriving on an island now shows a small notice at the top with the planet's picture and name: at startup, when a saved session is restored (where it adds that your last progress is back), and after a planet change (where it reports what the move cost). It puts itself away after a few seconds, never covers an error message, waits for the welcome tour to finish, and carries a Switch planet button straight to the planet chooser.
- A boot splash that prepares the art up front. On the first visit of each release, a small island builds itself tile by tile while every icon, cursor, interface graphic and font downloads, with a progress button tracking the real count; the splash then slides away as the editor slides into place. Later visits skip it, and the skip is verified against the browser's real cache: a hard reload or an emptied cache brings the splash back, since the assets genuinely need downloading again. While the code itself downloads, the page shows the app's cream ground with a quiet pulse instead of a white screen.
- A 3D quality setting. Settings now offers Auto, Full and Light for the 3D view. Auto keeps the automatic choice: machines without working graphics acceleration get the lighter picture. Full and Light pin it, for a machine the automatic choice misreads, or for accepting a slow full-quality view long enough to take a screenshot.
- About names the graphics mode your machine is using. Under the version line, the About window now shows one quiet line: whether the browser is drawing with hardware acceleration or in software, and what the graphics device calls itself. A report about the editor being slow can quote it directly, with nothing to look up first.
- The 25 in-game path surfaces, with their real tiling. The road picker now carries all 25 path surfaces from the game, each drawn with its own tile art rather than a flat colour, in the 2D and the 3D view alike. Every swatch shows the surface itself, and hovering one gives its name.
- A model the endpoint does not serve now says so, and offers the model row. A request refused because the model is not there used to end in a general "something went wrong" notice with nothing to press. It now names the model in the sentence and its one button opens the assistant's settings, where the model is chosen, instead of offering another attempt that would ask for the same model again.
- Changing the model, the endpoint or the provider while the assistant is working says which job it affects. A running job keeps the connection it started with all the way to the end, so a change made mid-job does not swap the author of a piece of work halfway through, and a short note says the change applies to the next job. Nothing is dropped: the next order you give uses it.
- Changing the endpoint address checks whether it still serves your model. If the new address lists its models and yours is not among them, the assistant switches to that address's own first model and says both names, so the change is visible and one press away from a different choice, rather than failing on your next order. If the address answers without listing anything, your model is kept and the row says it could not be verified. The endpoint field now sits above the model row, which is the order the two depend on each other in.
- The busy pointer is the editor's own now, and it turns. While a long operation runs behind the app, the pointer shows the set's arrow with a small ring of beads circling at its shoulder, in place of the operating system's spinner, so the wait wears the same art as everything else. The ring keeps turning under reduced motion, since a progress sign that froze would read as a hang.
Changed
- The mainland site loads under the Chinese wordmark. On petitmaker.com.cn the loading screen and the boot splash show the Chinese masthead whatever the interface language, matching the site's own title; the global site keeps choosing by language.
- The assistant opens where her button was, and there is only ever one of her. Pressing the assistant expands the panel behind her: she stays exactly where she was standing, the panel unfolds from her own corner. The box drawn around her while the panel was shut is gone, so she stands on the island itself, and she lifts a little under the pointer to say she can be pressed. Pressing her again folds the panel away.
- The assistant always starts folded away. Opening the panel is no longer remembered between visits: the editor opens on the map every time. The session itself still comes back, so a job you left standing is where you left it once you open her.
- The assistant's connection screens no longer show a message box. While she is asking for a key, walking through the connection steps or standing on the settings card, the field that takes orders is not drawn at all: the screen's own button (Connect, Back, Try again, Done) is what stands at the foot of the panel. Previously a dead message box stood under those screens inviting an order the panel would not take.
- New pointers, one size and one arrow, sharp on every screen. Every cursor the editor draws is one small vector file now: the arrow, the text caret and the Ctrl marks as true geometry, and the painted hands, move cross, turn arc and refusal sign carried inside at double resolution. The browser paints each at the density of the screen it is on, so the set stays crisp on an ordinary display, a high-density one, and over the scaled interface alike, and it holds one size everywhere: the pointer over a button matches the pointer over the map, and scaling the interface with Ctrl and plus or minus never resizes it. One yellow arrow serves every pointer that points, in place of the blue, yellow and green ones: what a tool may do where you are aiming is said by the preview under the pointer, not by the pointer's colour. The whole set also stands a step larger than before.
- The generator offers one island, not three. Land, Isles and Lakes were three biases of the same generator, and keeping three looks good at once cost more than the choice was worth. There is one Island now, built in the style the reference maps describe, and how much sea it holds is the richness slider's business like everything else about how full a place it is. Maps saved under the old kinds still open and still regenerate as themselves.
- The previous island generator has been removed. Every island is built by the new generator now, and the older one it replaced is gone from the program rather than kept beside it. Nothing you have saved depends on it: a save file and a share code carry the map itself, not the recipe that made it, so an island already built opens exactly as before. A recipe number written down under the old generator now builds a new island in the current style rather than the one it used to make.
- An imported picture is fitted to what it draws, not to the frame its file came in. A sticker photographed on a sheet of white is mostly white, and that white builds nothing: the picture used about a quarter of the area you painted and the rest of it went on cells that stayed empty. The blank border is dropped now and what is left is fitted again, so the same picture comes back at about twice the size and its features are legible where they used to be a smudge. A picture that already fills its own file is left exactly where it was, and nothing inside a picture is ever cropped.
- The tallest layer moved from Letter to Picture. A letter has no height to set any more, so the slider left that mode. A picture's heights are its colours, so there it means the depth of the colour ramp. It stands beside Contrast on every picture, dimmed and reading n/a while the picture is tiled with items rather than coloured in terrain, so changing the material never moves the controls around it.
- A picture can be scoped to a circle again. The scope screen offers the circle beside the rectangle for pictures, as it does for letters: a circled picture keeps its middle and gives up its corners, which is a vignette rather than damage. The figures with no interior to speak of (a brushed blob, a line, a curve) are still not offered, since a picture drawn in one comes out full of holes.
- Smaller regions can hold a letter or a picture, and each card decides for itself. A picture now asks for a region 20 cells across instead of 32, and text 5 instead of 16; the region brush lets you paint one that small too. In a small region the cards no longer stand or fall together: each one draws its own letter and offers it if it survives, so an E or an L is built in five cells where an M or an X says it needs eight to keep its strokes apart. A row of letters wants 10 cells per character, since the gaps between them close before the strokes do, and Chinese wants 14, its characters carrying six or seven strokes where a letter carries three. Every one of those is said before generating rather than after, and a run that could not build any of the word now says that too instead of quietly doing nothing.
- The ready-made pictures are the game's neighbours. The picture mode now deals the fourteen neighbour portraits, plus the app's own logo, so it can be tried without a picture on hand. A portrait is what the mode is best at: a large face in a few strong colours still reads when it is rebuilt out of a few hundred cells, where a small item sprite is mostly outline and outline is the first thing to go. Each card shows the neighbour's own name, in Chinese where the game has one.
- New project is now Change a planet, and your island can come along. The menu row that started a new map opens a planet chooser instead: the planet you are on shows what you have built on it, and choosing another asks whether to bring that build along or start fresh there. Bringing it along moves everything to the new island and checks it against the game's rules on arrival; whatever the new coastline cannot hold is removed, and the arrival notice says how much. Switching cannot be undone, so export first if the map matters.
- The plain colour road surfaces are gone, replaced by the game's own paths. The four flat-colour roads (dirt, stone, brick and slate) had no counterpart in the game, so a layout paved with one of them could not be laid down there. They have been removed, and the road picker now offers the 25 real path surfaces only. Maps you have already saved, autosaves and share codes convert as they open: each old road becomes the in-game surface closest to it in material and colour, so an island keeps its layout and becomes buildable. The overgrown dirt path is the one surface plants may stand on, so a flower bed can run along it the way it does in the game.
- The build tools preview themselves as the artist's cell card. The brushes, the eraser, the trim tool and Smart Build used to show a flat wash in the colour of what they were laying; the pointer now carries a small rounded card with a glyph naming what is being laid, green where the press would be accepted and red where it would be refused. The rotate-your-device notice likewise shows the artist's own drawing of a phone mid-turn instead of a code-drawn arrow.
Fixed
- The object shelf's forgiving search starts its matches on word boundaries. A scattered match could begin mid-word, so a short query surfaced items whose names merely contained its letters somewhere; a match now has to start where a word starts.
- Starting to work with the assistant answers the restore offer. Opening the assistant's panel only hid the offer to bring back your last session, and closing the panel brought it straight back; opening the panel now declines it the way choosing a mode or pressing OK already did.
- Exporting a share image is faster on every machine. The encoder now reads the picture the painter already finished instead of copying every pixel out and back in through a second canvas, which cost seconds at export sizes on machines without graphics acceleration.
- The mainland site's privacy policy describes its own hosting. The "where data goes" section named the global site's network and said requests from mainland China are served from outside it; on petitmaker.com.cn it now names Alibaba Cloud's edge and says such requests are ordinarily served within the mainland. Each deployment's policy states its own facts, and the policy version steps to 1.2.
- A crafted map file can no longer smuggle free text into the assistant's map readings. The JSON importer already refused objects with made-up item ids; it now also replaces an object id written outside the app's own alphabet, closing the other field a hand-edited file could hide instructions in.
- The right-rail buttons say their names in every window. Hovering undo, redo or a view button opens a small plate carrying the button's name; in narrower windows and at larger interface sizes the plate never appeared, and where it did the name could run off it. It now seats the full name in every arrangement and every language.
- The map keeps its view through a window resize. Changing the browser window's size used to hold the map by its top-left corner, so what you were looking at drifted toward an edge and could end up half out of view, most visibly with the assistant's panel docked. The point at the centre of the map area now stays at the centre, at the same zoom, in the flat view as the 3D view already did.
- System cursors: the hand over the map rests open now. With system cursors chosen in Settings, macOS drew the pan tool as a permanently closed hand. It stands open at rest and closes only while the view is actually being dragged.
- Smart Build can no longer fall silent for the session. An unexpected failure while a press landed used to leave every later press doing nothing until the page was reloaded; it now reports that nothing was built and the next press works normally.
- Generation no longer hangs when a background worker fails to start. Candidate previews and Smart Build presses fall back to the main thread instead of waiting forever.
- A right-click puts away a half-drawn curve, the same way it puts away a road-link mark.
- The assistant's block no longer wears the selected mode's splat. Opening the assistant left the yellow blob that marks the armed build mode standing under her block, and the panel is narrower than the blob is wide, so a wing of it showed past the panel's top corner for as long as the panel was open and read as a sixth mode nobody had chosen. The panel standing under the block is what says the assistant is open.
- The bottom bars no longer let the map move through them. Scrolling the road-surface row between two tiles used to zoom the map, and a wheel or drag over the shelf's dark backing band reached the map underneath. The rows and the band now keep that input to themselves; the map still pans and zooms everywhere it is actually visible.
- A refused water stroke says which layer would work. Painting a waterfall with a layer left armed from an earlier edit was refused for the right reason and no useful one: the game asks a fall's side walls to reach exactly the water's own layer, and nothing in the message said the water was aimed a layer too low. Where the ground under the stroke leaves exactly one layer that would hold it, the refusal now names that layer. Where none or several would, it still says what the rule said, since a list of layers is not an answer. The stroke itself is unchanged: it lays the layer you chose or refuses it, and never moves your water somewhere you did not ask for.
- Bold text lightens where the screen cannot hold it. The heaviest weight fills the gaps between its own strokes once the glyphs come out small, so a bold label on a 1080p screen read as a smudge rather than as emphasis. Text now takes the weight its actual size on screen can carry: at a comfortable size it is unchanged, and below that the heavy weight steps down to bold, and then to medium. Chinese and Japanese step earlier, since a character carries several times the strokes of a letter at the same size.
- Generating inside a painted region now works over terrain that is already there. Painting a region across part of an island or a picture you had already built and generating into it did nothing at all, however many times it was pressed. The reason was at the boundary: the ground outside the region stands on the cells inside it, since a tall mountain needs a full 3x3 of support beneath it and a raised pond needs its banks, so emptying the region left the map illegal at cells the run had never touched, and the whole run was taken back on the spot. A run confined to a region now settles its boundary before it lands, giving back only the ground the terrain outside genuinely stands on and building normally everywhere else. Taking a generation back inside a region failed the same way and is fixed with it.
- A region that cannot be built in now says so. A region painted deep inside a tall mountain is ground the terrain around it stands on, and only what those surroundings need may be left there, so a generate press inside one builds nothing at all. It looked exactly like the failure above. Such a press now says why, and what to do instead: paint the region over lower ground, or widen it so it takes in the high ground as well. A region the generator was free to build in, where the design simply put nothing, stays quiet as before.
- Panel and window text is no longer smaller than the interface around it. Some text in the settings, About, keyboard and export windows was set as small as 10 px, well under the smallest size the main interface uses, so the chrome around the map read comfortably while a window standing over it did not. Nothing in a panel is set below the interface's own small-print size now. Sizes only moved up, and no window changed its layout.
- Small letters keep their shape, and a straight stroke comes out straight. A letter is built out of whole cells, so where its strokes land on the grid decides whether they survive at all: a bar sitting half a cell low was two rows of half coverage and simply vanished, which is why small text arrived with pieces missing. The letter is now placed at whichever alignment the grid can hold. The pass that used to trim every stroke to a target width is gone with them: it was taking the cell that squared a corner, stepping a straight stem sideways where another stroke met it, and shortening strokes at their ends. A letter is now built as the font drew it, so a line comes out a line and a diagonal comes out a clean slope.
- The Water material builds water. Asked for water, a picture came back almost entirely green: the one blue was a single entry among eight greens, so only an area that happened to be blue ever won it, and a picture that was not blue got none at all. The picture now stands in terrain with water as its inner material: its light areas become the water inside it, its outline stays land so every pond has a bank, and the ground around the picture is left exactly as it was. A picture of one flat colour becomes a lake in its own shape.
- A picture is told in the whole colour ramp again. The tallest-layer setting was shared between the generator kinds, and the shelf opens on the maze, whose walls stop at layer 3. That ceiling followed you into the picture kinds, so every picture arrived flattened into three shades of green without anybody having touched the slider. Each kind keeps its own setting now.
- A card whose region no longer fits refuses instead of building the last one. Painting a region too small for a picture blanks the cards and says why on them, but a click on a blank card still built the picture the previous region was fitted for. Those cards now stand where they were, dimmed, and refuse the click.
- The scope screen says its minimum in words. With a region shorter than the picture needs, the Done button showed an internal name instead of a sentence. It now says how many cells a side are needed, in every language.
- A minimum-size region can be drawn against the edge of the map. Dragging out the smallest region a picture allows near a margin grew it off the map, and the part beyond the edge was dropped: the region came back short of the very minimum that pushed it there, however far it was dragged. It now grows away from the margin instead, so the smallest allowed region can be drawn anywhere, corners included.
- The interface keeps one set of proportions at any window size. In a browser window shorter than the full screen (a maximized Chrome on a 1080p display leaves about 870 pixels of page), the frame's blocks and buttons stayed at full size while every window, notice and the export sheet shrank with the window's height, down to text too small to read. Both now follow the same measure: in any window at least as large as the one the layout was judged in, everything is drawn at its designed size, and in a smaller window the whole interface shrinks in step. On a taller display the windows no longer grow past that size either, so the editor looks the same on a laptop and on a large monitor. UI scale in Settings, or Ctrl with plus and minus, still resizes everything for anyone who wants it larger or smaller.
- A letter stands on the ground it is written on. Text used to be built as a terraced pile: its outline sat a layer below its body, which read as an edging around every glyph, and a stroke too narrow to have an inside never reached the upper layer at all, which read as holes through the letters. Writing over a mountain also cut into it instead of standing on it. A letter is now one clean layer on the region's own surface. Where part of a word cannot stand there, because it crosses a step, reaches the edge of the ground below or stands where the ground is already at the tallest layer, the run says which and how many cells rather than leaving letters quietly missing.
- Letters are drawn at a weight the region can carry. A letter was drawn with the bold weight of its font at every size, and on a grid of whole cells bold is a slab: an M at eight cells arrived with its two stems and its middle V fused into one block. The weight now follows how much room each character is given and how dense the writing system is, and anything still too thick is thinned to fit, so a small area gets slim readable letters while a large one stays deliberately bold. A region too small for the letters people actually type is refused up front instead of building a blob.
- A picture keeps its shape in a small region. Each cell now reads the whole of the picture area under it instead of a single point of it, and the colour matching spreads what it cannot match onto the neighbouring cells. Small features survive: at twenty cells across, a face keeps its eyes where they used to disappear entirely.
- The material a letter is built from can be changed after it is chosen. Choosing Objects opened the item list once, on the way in, and afterwards nothing said which item had been chosen or offered another. The setting bar now carries the chosen item's name, and pressing it opens the item list again.
- The 3D view rests when you are not using it. The water and waterfalls used to animate continuously, which kept the 3D view redrawing the whole map every frame for as long as it was open. On a large island that meant constant processor and graphics work with nothing happening on screen: fans running, battery draining, and every pan or edit competing with it. Water is now drawn once and stays still, and the view redraws only when the camera moves or the map changes. Waterfalls keep their layered look, and complex maps stay responsive.
- The 3D view no longer strands a browser that cannot run it. Where 3D failed to start, the screen went blank with no way back; the app now says the 3D view could not start and returns to the 2D view. A graphics reset mid-session pauses the view and resumes when the browser recovers.
- 3D is far lighter on machines without working graphics acceleration. On a computer rendering 3D in software, the previous settings (soft shadows, extra anti-aliasing, full resolution) could take seconds per frame at full processor load. Such machines are now detected and get a plainer picture that moves: no shadow pass, standard anti-aliasing, standard resolution, and no camera fly-in.
- The 2D map is lighter on machines without working graphics acceleration too. When the browser renders in software, every pixel of the map is drawn by the processor, and a high-resolution screen asks for four times as many of them as an ordinary one. Such machines now draw the map at standard resolution: panning, zooming and painting are markedly smoother, the picture is slightly softer on a high-resolution screen and unchanged on an ordinary one. Exported pictures and share images keep their full resolution either way, and pinning 3D quality to Full restores the sharper map for anyone who prefers it.
- Auto trim stays inside the stroke. With Auto Trim on, painting could restyle a corner it never touched: a block one cell away, whose corner faces open ground on the far side, was trimmed by the stroke's border sweep. A neighbouring corner is now trimmed only when the stroke actually changed that corner's surroundings, so corners left square on purpose stay square.
- Stacking a layer on trimmed terrain restores the trim below, as you paint. Raising the walls around a trimmed inner corner used to leave the old corner piece standing at the foot of the taller notch, where it read as a stray wedge that could not be trimmed away or repaired. A corner piece the walls have outgrown is now removed the moment the wall rises under the moving brush, not at the release, the same way a raised block already clears its own trimmed edge.
- The inner corner of a tall wall can be trimmed. Trimming the notch of a wall stacked two or more layers high used to do nothing. It now takes one rounded piece spanning the notch's full height, matching how an outer corner has always bevelled the whole column, and walls of unequal height trim at the height both walls share.
- Exporting a picture with a share code works from any address. The code's integrity hash used a browser feature that exists only on secure pages, so an export attempted from a plain address failed with no picture. The hash now computes everywhere, and the exported code is identical either way.
- Pixel art, text and other picture maps carry a share code again. The code used to carry the generation recipe as a note, and a picture recipe includes the source image itself: far too large for the code, so the export failed for every map generated from a picture. The picture recipe no longer rides in the code (the map already is the picture), an oversized recipe of any kind is left out rather than crashing the export, and these maps now encode small enough for the most robust code density.
- The welcome tour holds the app still. While the tour is running, clicks no longer reach the map or the controls behind the dimmed screen, so a new visitor cannot edit the island or switch modes by accident before the tour is done. Skip and Esc still leave the tour at any time.
- The tour describes zooming correctly. The camera step now says Ctrl + scroll: on many touchpads and smooth-scrolling mice a plain scroll moves the map instead, so the old wording pointed at a gesture that did not zoom.
- The neighborhood center stands at its real height in 3D. It is a one-layer platform, and the 2D view and the layer panel have always counted it that way; the 3D view now builds it as one solid base, level with layer-1 terrain beside it, instead of laying it flat on the ground.
- The welcome card opens without a stray focus ring. The rust outline that marks keyboard focus used to appear when a panel took focus by itself, at first launch or when clicked. It now appears only where the keyboard puts the focus.
- The layer panel's square size no longer shades its bottom row. The fade that says a list continues could survive the switch into the square layout and sit over the ground row of a stack that was all showing; it now clears itself the moment the content it described is gone.
- A road follows the ground under it, whatever changes that ground. Erasing a mountain from under a road used to leave the road hanging in the air. Now the road rides down when the whole footprint lowers, and is removed when the ground under it becomes uneven, the same way the game treats a road under a new mountain. The road follows while the stroke is still travelling, leaving the moment its stand becomes illegal and returning as soon as the ground makes it legal again, not only after the release. This holds for every way of editing terrain: the brush, the eraser, smart build and the AI assistant alike.
- Laying a road over another road replaces it cleanly. Painting one material across another used to corrupt the map: tiles could stack on one cell, unrelated tiles disappeared, and undo restored states that never existed. A stroke now strips the covered tile and lays its own as one step, and undo returns exactly to the map before the stroke.
- Roads lie flat in 3D. A road is a coat of surface on the ground it covers. The 3D view now draws it as a flat layer directly on the terrain, with the same soft edge fade as the 2D view, instead of a raised slab whose height could differ between tiles of one level.
- A pond can be dug at the foot of a tall waterfall. Converting the ground in front of a fall into water was refused with the base-support message: the water counted as one layer less support than the block it replaced, so the fall's own cap mountains lost their base. Water now supports its neighbours at its surface level, matching how the game itself carves waterfalls; building on top of water is still impossible.
- The editor is much faster on computers without working graphics acceleration. The map used to draw its whole scene twice for every frame, and to keep drawing it while nothing was happening at all; where there is no graphics acceleration, it also worked out every fill colour again on each of those redraws. The map now draws once, only after something has changed, and reuses the colours it already holds. On such a computer, panning and zooming a dense island, painting terrain, filling an area with a road surface and exporting a share picture are all considerably quicker, and a map nobody is touching no longer repaints itself. In the 3D view, the first edit after the scene appears no longer freezes for a second or more, and turning the camera no longer stalls each time a new part of the island comes into view. What is drawn is unchanged.
- The region highlight lies on trimmed ground in 3D. Where a corner had been rounded off, the white wash over a painted region stayed at the height of the block it belonged to, so it hung in the air over the step, the water or the grass the rounding had opened onto. It now follows the surface actually drawn there, corner by corner, and the same correction reaches the tool ghosts, the commit and error flashes and the maze route. A drape over a pool at ground level also sits on the water instead of just under it.
- A tree beside a hill no longer stops its corner from being rounded. Rounding the inside corner of a mountain was refused whenever anything stood on the ground nearby, saying the cells were occupied by objects, even where the rounding filled a quarter of a cell the object was nowhere near. The check now reads the quarter the rounding actually fills, so a corner is refused only where something genuinely stands in it.
[0.6.28] - 2026-08-11
Added
- An island from a letter, or from a picture. Letter and Picture join the Generate shelf: hand one a character or an image and it builds that shape as an island, down to reading each corner's trim off the source's own outline. The figure can be grabbed and moved inside its region before it builds, and a shape that cannot fit the region says so instead of spilling.
- The painted region can be picked up and carried whole, and in 3D it drapes over the ground it is lying on.
Fixed
- Falling water refuses the corner trim. A waterfall's face locks as one piece, so an edge cut can no longer nick the fall at any height.
- The placement ghost reads against a cliff. The 3D view draws it yellow, so it no longer disappears into the green of a slope behind it.
[0.5.550] - 2026-08-11
Added
- A smart build shelf, where one press lays a whole thing. Choose what to build and press the map: a terraced hill, a stream that finds its way down to water, a road, or a planting. Each shows a preview of what it would build before you commit, and holding the press grows it. A planting reads what it is standing beside, so a bed appears against a building and a border along a road, and holding it lets the stand mature.
- Roads you can route. Press a point and then another to connect them, and the shelf offers the ways it found and what each would cost. Press again for a different layout of the same island rather than a second one piled on the first. A whole-island press paves the network and ends its streets at the doors.
- A way in and a way out of a maze. Turn the marks on and drag them where you want them; every candidate is built with them, and the route between them can be shown, paved as real road.
- The eraser takes back a rectangle or a circle, beside the dab it has always had. Press at one corner, drag the figure out, and the whole of it goes on release; hold Shift for a square or a round circle. It is one undo step.
- Resuming a session restores what you can still undo, up to the last sixty steps, alongside the map and the camera.
- Ramps and bridges sit on the half grid, so a crossing lands where the gap actually is rather than a cell away from it.
- The object shelf forgives a search. Two words at once, a misspelling, an item's other names, and its colour all find it.
- Generate offers candidates you can see. Each card is a photograph of the map that recipe builds, and clicking one is the confirmation, with no second step.
Changed
- A new interface, in the game's own style. The tools are five mode blocks along the top with a bar for whichever one is chosen, the layers and the view controls stand in a column at the right, and the windows are reached from one menu. It is laid out to fit a laptop, and it scales down rather than covering the map on a smaller screen.
- A new default keymap, matched to the game's controls. The terrain tools sit on the digit row in the order the bar shows them, and WASD pans. Every command is still rebindable, and the previous layout remains as a preset.
- Save and share is one window with three sections: keep working, share a picture, or read the build checklist.
- The 3D view opens square on, the way the 2D view does, and it opens sooner: its scene is fetched in the background while you work in 2D. Touching the camera during the opening fly-in lands the view immediately rather than ignoring you until it finishes.
- Editing is quicker on a full map, most visibly while a large selection is standing. The support check behind every stroke was reduced to about a fifth of its cost, and the 3D water now moves on the graphics card instead of being recomputed every frame.
- A painted region reads clearly in 3D, drawn in white rather than green over green.
Fixed
- The brush preview promises what the stroke will do. It stands on the surface it hovers, trims the corners the stroke will trim, and draws a placement as one body rather than a stack of parts.
- Water follows the ground it crosses, unless you pinned a layer yourself.
- A cut corner where mountain meets water opens onto the mountain, so the junction reads as one line, and two shores meeting at a point now weld.
- A saved file with a half-cell crossing no longer loses its undo history on import.
- The recipe field on the Generate panel is a line you write on. The blank keeps its place and its length as the number grows, and its caret matches the digits beside it.
- A road's rounded corner could keep its old shape after a generation or a smart-build press, until something else nearby was redrawn.
- A failing generator run no longer moves every later one onto the main thread, which had made each press after it slower for the rest of the session.
- The digit shortcuts fire by their physical keys, whatever the keyboard layout types.
- The cursor answers for the tool you have arrived at, not the one you just left.
[0.4.149] - 2026-08-02
Added
- A guided tour on first launch. It covers moving the map, where the menu is, reading the height of a block, and switching between the 2D and 3D views. It can be skipped, and reopened from Settings under Getting started.
- The curve tool passes through the points you place. Click to add a point, drag to move one, double-click to finish. The points remain after the curve is drawn, each with a handle either side for adjusting the path; hold Alt to move one side independently. Each adjustment is a single undo step, and Escape dismisses the handles.
- The brush preview shows the auto-trimmed result. With auto-trim on, the preview rounds the corners the stroke will round, in every shape tool; the freehand brush trims as it draws.
- Nineteen additional flower colours, bringing the catalog to 81 placeable items.
- A quick-hints panel beside the zoom buttons. It lists the few most useful actions for what you are doing right now: how to move the map in 2D or 3D, the curve tool's handles, what a selection can do, and the tricks each brush hides. The keys it shows follow your own rebindings, a small button on the card collapses it to its three best lines, another closes it, and Settings chooses Full, Concise or Off.
- Keyboard shortcuts for both exports. Ctrl+S saves the JSON file, Ctrl+P exports the share image, and Ctrl+Alt+N starts a new map, as Ctrl+N is reserved by the browser. The keyboard page lists and rebinds Alt combinations alongside Ctrl and Shift, and
mshows or hides the menu. - A confirmation before starting a new map when the current one has not been exported.
- Bridge and ramp icons indicate orientation in the 2D view: a bridge's icon rotates with the bridge, and a ramp's points from its low end to its high end.
- Camera inertia in the 3D views, and one held-key pan shared by both, at two speeds: double-tap a direction for the faster one, hold Shift for the slower one.
- Support for phone-sized screens, a notice when the app is opened inside another application's in-app browser, where some features are unavailable, and a beta marker.
- The AI agent is confined to a painted region, as the generator already was.
- Chinese versions of the changelog and the asset licences, in the app and in the repository.
Changed
- A new code format for share images, which carries less data and reads back the same map. The code is named PetitGlyph, sits at the page margin, and is shorter for the same map. Images exported by earlier builds can no longer be imported; re-export any map you intend to keep sharing. JSON save files are unaffected.
- Clear reverses the last generation instead of emptying the map. It is limited to the region that generation was given, and leaves manually placed content in place.
- Objects can no longer stand on a road. Placing an object on a paved cell removes the road under it, which matches the game's rule.
- Browser zoom no longer affects the 2D map. Zooming the page does not rescale or shift the map, and the view no longer jumps on the next pan.
Fixed
- Auto-trim could leave an empty cell in terrain that had just been painted, reported afterwards as a floating-block violation.
- A shape crossing ground it may not build on placed nothing at all. Rectangle, circle, line and curve now place the permitted part of the shape and skip the rest.
- The brush preview could modify the map it was previewing, removing blocks that were already there.
- Generating into a region removed placements in a previously generated region, and the newly generated region could appear empty.
- Locked layers flickered in the layer panel during a brush drag.
- The Generate panel's mode buttons shifted when the window was resized.
- The page title showed two languages until the app finished loading.
- Clicking the plaza now reports why the action was refused, rather than doing nothing.
- A share image that predates a catalog addition now reports why the import failed.
- Modifier-key hints appear when the key is pressed, rather than on the next pointer movement.
- Dragging the 2D map with the hand tool could move it far beyond the pointer.
- Rotating an item with the comma and period keys before placement now updates the preview immediately.
- The device-rotation notice uses an icon that reads as a rotation.
[0.3.2] - 2026-07-30
No user-facing changes.
[0.2.71] - 2026-07-30
Added
- A guided tour the first time you open the editor. It walks through moving the map, where the menu lives, how to read the height of a block, and how to switch between the 2D and 3D views. Skip it whenever you like, and open it again from Settings under Getting started.
- The changelog and the asset licences now read in Chinese, in the app and in the repository, alongside the English ones.
Changed
- Share images use a new code format, which carries less and reads the same. A picture made by an earlier build no longer imports. Export a fresh picture of any map you want to keep sharing. Saved JSON files are unaffected.
Fixed
- Dragging the 2D map with the hand tool could send it sliding far past the pointer instead of following it.
- Turning an item with the comma and period keys before placing it now turns the preview straight away, instead of waiting for the next mouse movement.
- The rotate-your-device notice shows an icon that reads as a rotation.
[0.1.1645] - 2026-07-30
PetitMaker is a map planner for Petit Planet that runs in your browser. Plan an island here, then build it in the game. Nothing is uploaded and there is no account.
Added
- Two editing views of one map. 2D and 3D edit the same grid, and every tool works in either one. Switch mid-edit and you keep the map, the selection and the undo history. The 3D view adds animated water, soft shadows, and a model for every placed item.
- Terrain painting that checks itself. Free brush, line, curve, rectangle, circle, and a brush-size dial. A stroke the game would not allow is undone on the spot, and the editor names the rule it broke.
- Items checked before they land. An item that cannot stand where you are pointing is refused rather than placed and then taken back. A bridge snaps into place once it has two flat banks of equal height.
- A catalog of 62 items: cabins, facilities, bridges, ramps, trees and flowers, plus two road styles you paint like a brush. Items snap to the grid, rotate on click, and drag to a new spot.
- Edge-cut corner trimming. Trim mountain corners one click at a time, or let auto-trim do it as you paint, bevelled or rounded.
- Eight elevation layers, each with its own visibility and lock switch, and an eraser that takes one layer per pass.
- Two generators from one recipe number. Random designs a settled island: themed neighbourhoods, terraces you can climb, a river stepping down to the sea, bridges where two banks match, and roads out to every home. Maze fills the buildable ground with corridors instead. The same number always produces the same map, so a number you like is one you can share.
- A naturalness dial that runs the same recipe anywhere from rectilinear to organic, and a maximum-height limit.
- Share images that are the map. A map exports as a picture carrying a visible PetitGlyph band. Drop that picture back in and you get the island back, cell for cell. It verifies itself on import and tells you if the image is too damaged to read.
- JSON save and load, a sectioned JSON export, and a save format that migrates older files forward.
- Autosave into your own browser, with a restore prompt when you come back.
- An optional AI agent. Bring your own key, kept encrypted on your device, for any of nine providers including any OpenAI-compatible endpoint. It writes a plan first, works through the same rules your brush obeys, and leaves each stage as a point you can rewind to. You choose how often it asks before acting.
- An interactive shortcuts page. Every command on a rendered keyboard, with modifier layers and the keypad. Click a key to see what it does, record a new combination to rebind it, or search for a command that has no key yet. Bindings persist, and export and import as JSON.
- Seven interface languages: Chinese, English, Japanese, Russian, Thai, Indonesian and French.
<!-- Version-compare links (…/compare/vN...HEAD) start with the second release; the first has no earlier version to compare against. -->