cycloidgen v7.1.1
Numbers
- Nothing computed moved. Every quantity this reports is what 7.1.0
reported, to the digit — the export from the trimmed bundle was compared file
by file against one built with every dependency present, and all 29 came out
the same size. This release is packaging, documentation and one dialog.
Fixed
-
"Design for requirements" could not be made to fit a short screen, which
put the buttons that end it out of reach. Four group boxes and the Search
button came to 832 px of minimum height; a dialog inherits the minimum of what
is inside it, so the window could not be sized below 885 px with its frame on
—resize(1080, 660)asked for 660 and silently got 854. On anything shorter
than that, the Use this design and Cancel box at the bottom of the results
column sat off the bottom of the screen, and dragging the edge did nothing,
because the window was already as small as it was allowed to be. A 1366x768
laptop is short enough. So is a 1080p panel at 150% scaling, where the
logical height is 720.The requirements form now scrolls, which is what breaks the inheritance: the
dialog's minimum height goes from 854 px to 156 px and it is bounded by the
results column, which stretches, rather than by the tallest thing in it.Search stays outside the scrolled part, pinned under it. Putting it in with
the fields would have fixed the reaching problem by handing it to the button
the dialog exists to have pressed — on a short screen it would have been below
the fold, which is where the button box was to begin with.The failure was not that it looked cramped. Both buttons that close the dialog
were unreachable, so the feature could be opened and not used. -
The macOS instructions deleted the application. They offered System
Settings ▸ Privacy & Security ▸ Open Anyway first andxattr -dr com.apple.quarantineas an alternative, which reads as "open it, then deal
with the warning". On macOS 15 and later that warning's default button is
Move to Trash. A tester on macOS 26 followed the README exactly and watched
the 1.3 GB install go to the Trash without the application ever running —
Gatekeeper blocked the launch, thensyspolicydmoved the bundle. Open
Anyway is not in that dialog at all; it appears in System Settings only
after a launch has already been blocked, and right-click ▸ Open stopped
bypassing Gatekeeper in macOS 15.So the order is reversed everywhere it appears — the README, the generated
release notes and RELEASING.md — and the clearing step now comes before the
first launch, where it produces no dialog at all. A test holds the order,
because it is prose in two files, one of them a heredoc inside a workflow,
and reflowing it back the wrong way is a plausible tidy-up.Being unsigned was known and stated. What was not stated is that the easiest
click destroys the install, which is the difference between a warning and a
trap. -
--versionfrom the.appdoes not print while the bundle is
quarantined. The README explained why a windowed macOS build still answers
on the command line and offered the command as proof. True for the bundle the
release workflow builds, which never carries the flag, and false for the one
a user downloads: Gatekeeper blocks theexecas well as the double-click,
so the command hangs for about ten seconds and prints nothing. It answers
normally once the quarantine flag is cleared, and the claim now says so.Both of these came from a tester on real hardware. Neither could have been
caught here: the release workflow runs the binary out of the mounted image
and it passes, because a file the workflow built itself was never quarantined
in the first place.
Changed
-
The bundle is 790 MB, down from 1.2 GB. 444 MB of it, 36%, was three
packages that CadQuery declares as dependencies and this application never
imports:casadi, an interior-point optimiser, at about 220 MB;numbawith
LLVM behind it at 142 MB; andtrame, a browser viewer, at 20 MB. CadQuery
declares what CadQuery can do, not what one caller uses.The note this replaces said the bundle was "essentially all OCCT" and
suggested a build without the CAD kernel for anybody who cared. Both halves
were wrong. OCCT is 152 MB — 12% — and the optimiser that arrives beside it is
larger than it is, so the prescribed remedy would have given up STEP and STL
export, which is half the point of the tool, to save a third of what came off
by shipping the same features with less beside them. The size was a plausible
guess nobody had weighed; measuring it took one pass and reversed the answer.Nothing is dropped on the strength of not finding an
import. Each package is
made unimportable and the whole suite is run against that — 778 tests — and the
export is compared file by file against one from an environment with every
dependency present: 29 files, identical sizes, kernel path included.casadineeded more than an exclusion, because it is imported whether it is
used or not:cadquery/__init__.pyreachesocc_impl.solver, which imports it
at the top. Sopackaging/rthook_casadi.pystands in for it, and what makes
the substitution safe is where the module uses it — all thirty-seven
references are inside function bodies, and the only names that run at import
are two annotations. Reading a name off the stand-in works, which is all an
annotation needs; calling one raises with a sentence saying the solver was left
out. This application constrains no assemblies — every part is placed by an
explicit transform off the kinematics — so the limit is real but unreachable
from the application, andpip install cycloidgenbrings the genuine article.Not done, and measured rather than left vague: about 123 MB of VTK is never
loaded either. It is left in because it cannot be checked the way the rest
was. Excluding a VTK module is a missing DLL in a frozen build, not a failed
import in a virtual environment, so the test suite would go green on a bundle
that had lost the 3D view.
Windows - cycloidgen_..._Setup.exe. It is unsigned, so
SmartScreen will warn on first run: More info -> Run anyway. A
signed build is planned.
Linux - cycloidgen-...-x86_64.AppImage. chmod +x and run it;
it needs glibc 2.35 or newer. If it will not start, the machine has no
FUSE 2: install libfuse2, or run the file with
--appimage-extract-and-run, which unpacks it instead of mounting it.
macOS - cycloidgen-...-arm64.dmg, Apple silicon. Drag it to
Applications, then run this before opening it:
xattr -dr com.apple.quarantine /Applications/cycloidgen.app
It is signed ad-hoc but not notarized, so Gatekeeper blocks the first
launch. On macOS 15 and later the dialog it raises defaults to
Move to Trash, which deletes the install - there is no Open
Anyway in that dialog, it appears in System Settings only after a
launch has been blocked, and right-click -> Open no longer bypasses
it. Clearing the flag first avoids the dialog entirely. On an Intel
Mac, use pip.
Anywhere with Python 3.10-3.12: pip install cycloidgen, then
cycloidgen.
The numbers this produces are preliminary sizing estimates, not a
certification. Validate against a physical prototype before anything
load-bearing depends on them.