Repository navigation
Releases: MerciHanrim/loop-studio
Release list
v0.25.0
A feature release (issue #344, Diagram Readability): diagrams are easier to read, in one migration. Nodes and frames line up on a grid with smart guides, connections run at right angles around nodes, a connection can be Orthogonal, Curved or Straight with bend points, every node keeps its text inside its outline, and the five Templates are laid out again. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
Migration. A diagram saved by an earlier version — a graph file, Workspace, share link or autosave — is lined up on the grid once when it opens, before its undo history starts, and its connections become automatic orthogonal. Project revisions, proposals and a Project autosave based on a revision are excluded from this automatic conversion only: they keep their recorded layout and shapes, so Review shows the real layout differences between a converted document and its revision, as intended. Running Tidy to grid on such a document lines up the current document alone, as one step you can undo; the recorded revision stays as it is. Files now carry layoutVersion (1). The engine, simulation results and engine digests are unchanged; a re-placed diagram's content digest changes with its positions. The informational meta.tool string is now loop-studio/0.25.0.
Compatibility. If a v0.25.0 document is opened in v0.24.0 or earlier and saved again there, its Straight connections lose their shape: the earlier version draws them as Curved and drops the Straight setting on saving, without a warning. Opening a v0.25.0 document in an earlier version and saving it is not supported.
New in diagrams
- Grid-aligned editing. Nodes and frames snap to a 16 px grid as you add, drag or move them with the arrow keys (16 px, Shift 64 px), with guide lines to other nodes' ports, centres and edges. Hold Alt to drag freely; Ctrl (⌘ on a Mac) now moves a frame without its contents. Tidy to grid, beside the zoom buttons, lines up the open diagram at any time as one step you can undo.
- Clearer automatic routing. Connections run at right angles around nodes instead of through them, connections from the same port branch apart right after it, and each label takes a free spot on its own line. A node's side ports stay on one row near its top, so a long name makes the node grow downward and its connections stay put.
- Editable connection shapes. A connection's Route can be Orthogonal (the default), Curved or Straight. An orthogonal connection is automatic until you add, move or remove bend points on the desktop; Reset to automatic brings back the automatic route. Each change is one step you can undo. The phone shows every connection shape and bend point, but bend points are edited on the desktop only.
- Text stays inside nodes. The Pool, Source, Drain, Converter and Gate are drawn for their own width, so their title and value stay inside the outline in all 18 languages.
- Reworked Templates. All five Templates use the new grid and routing, with clearer spacing; the coffee roastery and early MMO Templates open on their first steps at a readable size.
Notes
Seventeen strings in 18 languages (15 added, 2 revised), 16 of them without native-speaker review. The changes are covered by automated tests of the grid, the guides, the conversion and its exceptions, the router, the connection shapes and bend points, text containment and the Templates in all 18 languages, and by an automated check of the production build. Automated verification is recorded in #345. The work is tracked in #344.
Included pull requests
- Feature: #345
v0.24.0
A feature release (issue #330, the last of three playback releases): playback speed now changes how much a step draws, Step always shows the full movement, and the phone gets a speed choice of its own with fewer moving markers. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged; only what a run draws on the canvas changes, and the speed is still not saved. The informational meta.tool string is now loop-studio/0.24.0.
New in playback
- Three speed tiers. At 0.4 s a step or slower, the moving marker carries its
+Namount, as before. At faster speeds the marker still travels and+Nappears when it arrives. Below 0.2 s a step, the path lights up for a moment and the marker appears at the end with+N. The tier is chosen when a step starts, so changing the speed during a step changes its pace but not what it draws; the next step uses the new speed. - Step always shows the full movement, whatever the speed is set to.
- Playback speed on the phone. More → Playback speed offers Slow (1 s a step), Normal (0.6 s, the default), Fast (0.3 s) and Very fast (0.12 s); the current one is checked.
- Fewer moving markers on the phone. A phone shows at most 12 moving markers with their amounts in a step, the first 12 of the same order the desktop uses for its 24, and no departure ring. Every other transfer still lights its path and shows its arrival; Pools still light up and Converters still show their mark. This is decided when a step starts, so rotating the phone during a step makes nothing in that step appear or disappear.
- Reduced motion and far zoom keep their forms, unchanged.
Notes
Twelve release-note and phone strings in 18 languages, 16 of them without native-speaker review. A known limit, unchanged by this release: on a desktop development build, a stress graph with about 300 transfers in one step measured roughly 70–200 ms per frame, so the shortest speed may not look smooth on graphs that busy. The changes are covered by automated tests of each tier, Step, the phone's speed sheet and marker limit, the per-step choice, reduced motion and the unchanged results, and by an automated check of the production build. Automated verification is recorded in #343. This is the final release in the three-part playback work tracked in #330.
Included pull requests
- Feature: #343
v0.23.0
A feature release (issue #330, the second of three playback releases): during a run, the canvas now shows what happens inside the nodes — a Pool lights up when a transfer arrives, and a Converter shows a small mark while it processes one. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged; only what a run draws on the canvas changes, and node sizes and text placement stay as they were. The informational meta.tool string is now loop-studio/0.23.0.
New in playback
- A Pool lights up on arrival. When the first transfer of a step reaches a Pool, a soft tint fills the inside of the Pool for half a second, under its title and value, which stay readable on top. The number still changes when the step ends. In a busy step and when zoomed far out, where no marker is drawn, the Pool lights up at the same moment. This replaces the small disc that used to appear after the marker had gone.
- A conversion mark inside the Converter. While a Converter processes a transfer, a small two-arrow mark shows inside it and fades when the step ends; its inputs and output still move together. Each Converter places the mark in its own free spot near the end of its mode text, clear of the outline and the text, in every language. When zoomed far out, the mark takes the place of the Converter's type dot.
- Focus mode never fades them. Both stay at full strength in nodes outside the focus.
- Reduced motion and forced colours. With reduced motion, the tint and the mark stay still for the step. In forced colours (such as Windows high contrast) the Pool's tint becomes a thin system-colour line under the text, and the mark takes the same colour.
Notes
Three release-note lines in 18 languages, 16 of them without native-speaker review. The changes are covered by automated tests of the arrival timing, busy steps and far zoom, the mark's placement and fade, Focus mode, reduced motion and the forced-colours forms, by a check of the mark's placement in every bundled Converter in all 18 languages, and by an automated check of the production build. Automated verification is recorded in #342. Issue #330 stays open for the last playback release.
Included pull requests
- Feature: #342
v0.22.0
A feature release (issue #330, the first of three playback releases): during a run, the canvas now shows what moved where — the path a Gate took, +N badges beside up to 24 moving markers per step, and Focus mode applying to the playback on connections. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged; only what a run draws on the canvas changes. Monte Carlo draws no moving markers, as before. The informational meta.tool string is now loop-studio/0.22.0.
New in playback
- The path a Gate took. For every Gate, deterministic or probabilistic, each branch that actually carries something in a step is highlighted during the step; several branches can be highlighted at once. A branch that carries nothing keeps its usual look.
+Nbeside the moving marker. The round marker still travels along each connection that moves, and the amount it carries in the step now always shows beside it as a+Nbadge, starting from+1. Before, a bare number sat above the marker only when the amount was above 1. The badge is drawn above every connection label; when zoomed far out, the badge is left out together with the marker, as the marker already was.- A connection's own label stays where it is. It fades only while the moving marker or its badge passes over it; in forced colours, it temporarily hides instead.
- At most 24 markers in a busy step. Up to 24 marker-and-badge pairs move in one step, instead of the previous 60 moving cues; every other connection that moved is highlighted and shows its arrival instead.
- Focus mode applies to the playback. With Focus on, the highlights, markers, badges and arrival cues on connections outside the focus fade along with those connections.
- Reduced motion and forced colours. With reduced motion, nothing travels: the connections that moved, their arrival marks and their
+Nbadges stay in place, without animation, for the step. In forced colours (such as Windows high contrast) the highlight is a wider line, the badge uses the system colours, a label gives way while it is covered, and outside the focus the cues are dashed instead of faded.
Notes
Five release-note lines in 18 languages, 16 of them without native-speaker review. The changes are covered by automated tests of both kinds of Gate, the +N badge, the label rule, Focus mode, the 24-marker limit, reduced motion and the forced-colours forms, and by an automated check of the production build on desktop and phone. Automated verification is recorded in #341. Issue #330 stays open for the next two playback releases.
Included pull requests
- Feature: #341
v0.21.4
A fix release (issues #338 and #340): the canvas controls keep their place while editing is locked, and on a phone, focusing the language search no longer zooms the page in. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged. The informational meta.tool string is now loop-studio/0.21.4.
Fixed
- The frame buttons stay while editing is locked. "Group frame" and "Clear all frames" now remain in the canvas controls, turned off, instead of disappearing, so the other buttons no longer move down when you lock editing.
- Locking turns the frame tool off. A frame tool switched on before locking used to stay on; a drag on the empty canvas now moves the view, as it should while editing is locked.
- The keyboard skips the two turned-off buttons, like every other control the lock turns off.
- No more zoom from the phone's language search. On an iPhone, tapping the language search used to zoom the page in and leave it zoomed until it was pinched back. Every text field on a phone is now large enough that the page does not zoom. Pinch zoom still works as before.
Notes
Four release-note lines in 18 languages, 16 of them without native-speaker review. The fixes are covered by automated tests of the controls' buttons, sizes and keyboard order locked and unlocked in the light, dark and forced-colours themes, of every phone text field's size, and by an automated check of the production build; the phone fix was also checked on a real iPhone, in Safari and in the Home Screen app. Automated verification is recorded in #339, #338 and #340.
Included pull requests
- Fix: #339
v0.21.3
A fix release (issues #334 and #335): the Canvas edit lock now resets at every new document, blocks every user edit while it is on, and its button shows the state at a glance. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged. The informational meta.tool string is now loop-studio/0.21.3.
Fixed
- A new document starts unlocked. File → New, starting a temporary session without the open diagram, and Delete work data leave an unlocked, empty document. Before, a locked example or file kept the new document locked, even after a reload.
- Every other document brings its own lock and no history. A Template, a file, a share link and Open proposal as document open with their own lock (a locked example stays locked) and with an empty undo history: Undo can no longer go back into the previous document. The confirmation before a replacement is the safety net.
- While locked, no user edit changes the document. The palette, Insert module, Undo and Redo, the data import wizard, a data refresh, renaming a bound table and a revision Apply are disabled. Selecting, panning, zooming, Focus and the other view settings, Run and Step, export and sharing stay available.
- The lock button shows its state. Unlocked is an open padlock with its shackle swung clear of the body; locked is the closed padlock with the same pressed look as Focus (the system highlight in forced colours). Its name stays "Edit lock" and its pressed state is exposed through
aria-pressed; the tooltip names the next action. The phone stays view-only, with no lock button.
Notes
One new string (the button's name) and three release-note lines in 18 languages, 16 of them without native-speaker review. The fix is covered by automated tests of every document boundary and every blocked control through the real interface, of the button's icon, name, state and focus ring in the light, dark and forced-colours themes, and by an automated check of the production build. Automated verification is recorded in #336, #334 and #335.
Included pull requests
- Fix: #336
v0.21.2
A fix release (issue #332): value and detail rows in Pools, Parameters and Registers now sit safely inside their nodes. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged. The informational meta.tool string is now loop-studio/0.21.2.
Fixed
- Rows start with the title. A value, a Pool's capacity, a Parameter's unit and a Register's
= exprnow start where the title text starts, and stay at least 8 px inside the drawn outline at both ends. Before, they started 14 px earlier, and a Pool's value sat on or across its slanted side. - Wider only where needed. A node whose row would not fit grows by the minimum, up to the 260 px maximum; in the three templates that is one node, by under 6 px. A row too long even for the widest node, or one whose widening would bring a title closer to the outline or change a node's height, ends in a visible "…". Only the display is cut; the stored value is unchanged.
- Unchanged: node heights and positions, saved files, digests and simulation results; Source, Drain, Converter, Gate and End rows.
Notes
Three release-note lines in 18 languages, 16 of them without native-speaker review. The fix is covered by automated tests that read every Pool, Parameter and Register row against the drawn outline in the light, dark and forced-colours themes, in Arabic and on a phone, and by an automated check of the production build. Automated verification is recorded in #333 and #332.
Included pull requests
- Fix: #333
v0.21.1
A fix release (issue #329): Focus mode now dims the connections outside the focus set, not only the nodes. Its full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration. Files, share links, digests and simulation results are unchanged. The informational meta.tool string is now loop-studio/0.21.1.
Fixed
- Connections fade with the nodes in Focus mode. A connection outside the focus set is drawn at the same faded strength as the nodes there, its line and its arrowhead. Before, the connections stayed at full strength and only the nodes faded.
- Focus wins over an activator. An unsatisfied activator connection stays half-faded inside the focus set and fades fully outside it.
- High contrast keeps its own sign. Under a high-contrast (forced colours) theme a faded connection is not made paler; its fine dotted line marks it, as before.
- Unchanged: labels, the selection highlight, nodes, the moving markers of a running simulation, files and results.
Notes
Three release-note lines in 18 languages, 16 of them without native-speaker review. The fix is covered by automated tests that read the drawn opacity in the light, dark and forced-colours themes, and by an automated check of the production build; its verification is recorded in #331.
Included pull requests
- Fix: #331
v0.21.0
A cumulative release: everything deployed to the web since v0.14.0, up to and including v0.21.0. Loop Studio is a web app, and each change below reached the site the day it was merged; v0.15.0 to v0.20.0 got no GitHub Release of their own, so this one covers them. Their full notes are in CHANGELOG.md and in the app's Help → What's new.
Source and web release, no install files. There is nothing to download or install from this page: use the app at https://cozy-loop-studio.pages.dev (it can also be installed from the browser as a web app). The attached archives are GitHub's automatic snapshots of the source code.
No migration is needed for older project files. Files saved by v0.14.0 open in v0.21.0. Newer files may contain a Timeline series choice (v0.15.0) and node or connection colours (v0.19.0); do not rely on releases from before those features to preserve those fields when reopening and saving the file. Project revisions containing colour use loop-revision/9 (v0.19.0), which older releases do not open. The informational meta.tool string is now loop-studio/0.21.0.
Graph readability (v0.19.0 to v0.21.0, issue #325)
- Flow colours (v0.19.0): nodes and connections can carry a colour, set from the Inspector's new Colour section (five palette colours, recent colours, the diagram's own colours, a hex value or the browser's picker). A colour never changes what a run computes. A selected node now shows its ring outside the outline, on every diagram.
- Beyond the canvas (v0.20.0): a coloured node's minimap mark and a coloured Pool or Register's timeline series take its colour; the Coffee roastery, gacha banner and early MMO templates open with three flow colours each, with their simulation unchanged; each colour is offered once in the Inspector; on a phone the colour reads as one line of text.
- Compact nodes (v0.21.0): a one-line node is 56 px tall instead of 64 (a one-line Pool 58) and a little narrower, so more of a large graph fits in view. Nodes that need the room still grow, and node positions, saved files and simulation results are unchanged.
Sharing, storage and licences
- Storage on a shared computer (v0.16.0): before anything stored is read, Loop Studio asks whether this is a personal browser or a shared computer; a temporary session saves nothing, and Settings gains a Storage and privacy area.
- Password-protected share links (v0.17.0): optional, sealed with AES-256-GCM under a key derived from the password; the password is never stored or sent.
- Share links use only the browser's own compression (v0.17.1); the bundled compression code is removed and older links still open.
- Third-party open-source licences in the About dialog (v0.18.0), read from the notices file that every build now carries.
What's new, the Timeline and the shell
- An update notice and a What's new page in the Help menu (v0.15.0), in all eighteen languages, shipped inside the app.
- A series selector on the Timeline (v0.15.0); a document with no saved choice draws at most eight series.
- The refreshed light theme (v0.15.0).
Fixes
- The run bar's space follows its measured height on a phone and in a narrow window (v0.15.1).
- The saved theme is applied at start-up, with no light flash before a dark start (v0.15.2).
- Every functional icon is the app's own drawing, the same on every platform (v0.15.3).
- The temporary-session button is drawn like the menu buttons beside it (v0.17.2).
- Every menu answers the keyboard the same way, and the phone's sheets step back one level at a time (v0.18.1).
- The guided tour says each step once and never drops focus (v0.18.2).
Notes
16 of the 18 languages have not received native-speaker review. Accessibility coverage for individual changes is documented in their linked pull requests and issues.
Included pull requests
v0.14.0
A localization release, and the first one that had to change how the app is laid out. Loop Studio went from eleven languages to eighteen, and the eighteenth is Arabic — the first right-to-left locale, which meant the UI had to mirror while the model graph kept its own left-to-right coordinate space.
No project-file change. The project schema and the saved fields are unchanged and no migration is needed, so a v0.13.0 file opens in v0.14.0 without conversion. The only difference in a newly saved file is the informational meta.tool version string, now loop-studio/0.14.0.
Added
- Seven new languages, bringing the UI to eighteen: Arabic, Dutch, Italian, Russian, Thai, Turkish and Vietnamese — alongside Chinese (Simplified and Traditional), English, French, German, Japanese, Korean, Portuguese (Brazil and Portugal) and Spanish (Latin America and Spain). The full list, with codes, is in the README.
- Right-to-left layout. Choosing Arabic mirrors the app chrome — toolbar, menus, panels, dialogs and the mobile sheet — while the diagram itself keeps its left-to-right coordinate space, so a model does not change shape when you change language. Numbers, identifiers and Latin technical terms inside an Arabic sentence keep their own direction and are never reversed or broken apart.
- A group frame's title, colour and size can be edited from the frame itself — the title chip opens a properties popover instead of sending you elsewhere.
Changed
- Every CSV this app downloads is now written by one writer. The record separator is CRLF and fields follow RFC 4180, so a label containing a comma, a quote or a newline survives the round trip; the file is UTF-8 with a byte-order mark so Excel on Windows opens it in the right encoding. This changes the bytes of downloaded CSV files. Before this, five of the six writers joined rows with a bare newline and replaced a comma, quote or newline inside your own label with a space — silently destroying it. A label is your text, and an export must not edit it.
- A frame title written in one language no longer sticks. A document whose frame titles were created in Simplified Chinese kept them in every language afterwards while its node labels switched correctly; once a document entered one of the six hyphenated locales it could not leave. Frame titles now follow the UI language like everything else.
- The Thai quotation of the Google Sheets download menu now matches what that menu actually says.
Notes
The per-locale decisions — the glossary each language fixed, what was deliberately left in English, the plural and number-format measurements, and the open questions each catalog carries — are recorded in docs/localization.md. No locale in this release has had a professional translation review, and none is claimed.
Arabic also brought the right-to-left work recorded in §L9 of the same document: the app chrome mirrors while the diagram keeps its own coordinate space, and a user value placed inside a translated sentence is isolated so it cannot be reordered.
Added automated DOM and Chrome accessibility-tree regression coverage for status text and descriptions in English and Arabic.
A build-time locale checker that could be silently disabled by re-indenting the registry now fails closed, and the Thai locale's six carried-over review items were measured and triaged.