Release Notes
What changed in each version. Places where numerical results changed are listed separately under "Numerical changes" for each version: if your existing results involve those cases, please recompute them after switching versions.
0.2.0 (October 2026)
Read this first
- Sign-in is required in every edition: the first launch stops at the sign-in page; sign in with an optic.chat account (sign in in the browser; if you have no account, register one, free of charge). The desktop app, command line and MCP all behave the same: when you are not signed in, computation stops and tells you to sign in first. Credentials renew automatically when online; for when the software goes online and what it sends, see Privacy and network access.
- 7-day full-featured trial: from the first sign-in on a new device, all computing features are available for 7 days (once per device and once per account; on another device the original start point still applies). When the trial ends you return to the free edition; during the trial the AI quota is still counted as the free edition's.
- Features opened by tier: the free edition is for learning and evaluation only (no commercial use). When your tier is not enough, only that one feature is blocked; designs still open, edit and run single-step analyses as usual:
- From the Personal Basic tier: the report pack (
pack), numerical check of report drafts (check_report), sign-off (signoff), Zemax.zmxexport (export_zmx), the check-rule library (inspect), Monte Carlo tolerancing (tolerance --mode montecarlo) and custom compensators (complines); - From the Personal Advanced tier: running orchestration actions and report summaries (
action_run,report_run); - Free: sensitivity tolerancing and inverse tolerancing (default compensator: back focal distance), default tolerances, Zemax import, thermal analysis, weight, materials, the gallery and all plotting. When your tier is not enough, the command line and MCP return the diagnostic
E-TIER, saying which tier is needed and how to upgrade; in the desktop app, these buttons on the ribbon carry a small lock and open an explanation when clicked. In Help "?" ›「购买 / 升级…」 (Buy / Upgrade…) you can see what each tier offers and go purchase; after paying, click "我已付款,刷新" (I have paid, refresh) and it takes effect.
- From the Personal Basic tier: the report pack (
- Stamp on figures: the right end of the title line of exported publication figures and of figures in the report pack is stamped with the tier: the free edition shows "免费版 · 仅限学习与评估" (Free edition, learning and evaluation only), the trial shows "试用版 · 仅限评估" (Trial edition, evaluation only), the personal edition shows "个人版" (Personal edition), and the enterprise edition shows nothing. The stamp is not part of the evidence id: the same design keeps the same evidence id when the tier changes.
- Anonymous usage statistics: the software sends anonymous usage statistics (which features were used, whether they succeeded, how long they took), containing no account, device or design content; they cannot be turned off. For what is and is not collected, see "使用统计" (Usage statistics) in Privacy and network access.
- Version validity: every installer and test build expires 90 days after it was built, with prompts starting 7 days before expiry; after expiry it stops at the sign-in page and gives the download address for the new version (https://optic.chat/download/). Versions that are too old may also be disabled, and the sign-in page likewise points you to the new version. Your open designs are all still there, and the new version opens them as usual.
- AI quota by calendar week: the quota for the built-in AI chat is now counted by week, resetting every Monday at 00:00 (Beijing time); whatever is unused in a week does not carry over. The free edition gets 1 million points per week (points are converted by model), and the Personal Basic tier gets 2.5 times the free edition's weekly amount. Below the AI page's input box it says "本周已用 xx%,约还能问 N 次" (xx% used this week, about N more questions), and warns you when it is nearly used up or used up, and at what time it resets.
New features
- MTF criterion for tolerancing:
tol criterion mtf freq=30/mm [field=all|0–1] [dir=avg|T|S] [min=0.3]. The sensitivity report shows how much each tolerance lowers the MTF; Monte Carlo gives "the fraction of trials not below this value", and whenmin=is written it also gives a pass rate. Compensators are first set by RMS wavefront, then fine-tuned by MTF. See the tolerancing section of the Lens file. - Inverse tolerancing and default tolerances:
lb tolerance-inverse --change 2(each tolerance applied alone worsens the criterion by at most 2 µm) or--limit 12(the criterion does not exceed 12 µm) works out how tight each tolerance should be, and--writewrites the result back to the tol lines (only those numbers change; look at the diff first with--dry-run);lb tolerance-defaultproposes a set of default tolerances from the design's structure (three grades: normal / precision / high precision) and appends them as tol lines. Orchestration's tolerance evaluation items can use it too (mode=inverse,tols=precision). See the tolerancing section of the Lens file. - Check-rule library
inspect(from the Personal Basic tier): checks the places that acceptance (spec/verify) does not cover and that go wrong anyway - machining (edge thickness, diameter-to-thickness ratio, steep surfaces, hard-to-test aspheres, angle of incidence), materials (supply status, weather resistance of exposed glass, price, plastics), thermal (defocus over the operating temperature range, cemented-pair expansion mismatch), image-quality conventions (paraxial vs real F-number, edge illumination, wavelength weights, MTF frequency vs sensor Nyquist) and tolerances (over-tight tolerances, sensitivity concentration, yield). Each hit gives the location, the actual value against the threshold, why it matters and how to fix it; it only advises and never blocks. Thresholds can be overridden with--threshold RULE.key=value. Not available in the free edition. - Tolerancing without tol lines:
lb tolerance --template precision(also Monte Carlo andlb tolerance-inverse;commercial/precision/high, or the Chinese names) applies a default tolerance grade in memory and analyses it, without editing the design text; the output and the figure say which grade was used. - Acceptance by configuration for multi-configuration:
spec … config=korconfig=all(omitted = the current configuration, so old files behave as before); each configuration has its own evidence id, and sign-off, the report pack and report checking all go by configuration. The desktop app's "验收" (Acceptance) page groups by configuration, each group can copy its evidence id, and the acceptance form of "插入语句" (Insert statement) gains a configuration dropdown. letin any order: evaluated by dependency, so using aletbefore it is defined also works; circular references reportE-LET-CYCLE. Deleting aletthat is still in use is refused.- Orchestration window: items and steps can be reordered by dragging ⠿; "选项" (Options) opens a form to change the optical / thermal / tolerance parameters, and "应用" (Apply) changes only that one line. The command line gains
lb report-set. - Desktop app:
- The ribbon drops the workspace dropdown and lays out five tabs flat: Lens | Analysis | Optimization | Review | Delivery;
- The 3D page has four display modes: solid + wireframe, translucent solid, opaque solid, wireframe only (navigation bar at the bottom of the canvas; remembered the next time you open it);
- Optimization moves from a floating window to the "优化" (Optimization) page in the right sidebar, and when you switch to another tab, optimization keeps running in the background as usual;
- The "历史" (History) page is grouped by day, and a day can be collapsed; the "在布局上对比" (Compare on layout) button on AI draft cards is renamed "对比" (Compare);
- The AI page shows this week's quota; paid features show a small lock and a "购买 / 升级" (Buy / Upgrade) explanation; the About page shows your tier, the date your trial runs to, and the date this version is valid to.
Numerical changes
After switching to 0.2.0, results in the following cases will differ from 0.1.0; please recompute them:
- Optimization of systems with coordinate breaks (fixing errors in 0.1.0):
- When an even asphere comes after a coordinate break and its aspheric coefficients are set as variables, 0.1.0 changed the wrong aspheric coefficient during optimization evaluation, and the merit function could be completely wrong;
- With a diffractive surface, 0.1.0 read the wrong surface for Seidel-type operands (SPHA, COMA, ASTI, etc.) during optimization evaluation, with deviations up to the order of 1e-3;
- When the conic coefficient on a plane (infinite radius) is set as a variable and comes before the radius variable in the variable list, the 0.1.0 optimization result could change with the order of evaluation and was unstable;
- All of these are fixed and checked item by item; optimization speed for coordinate-break, fold and tilted systems is unchanged.
- Ideal thin lens: for designs with an ideal thin lens, wavefront and MTF-type values change on the order of 1e-13 mm (about 3e-10 wavelengths); other designs are bit-for-bit unchanged.
- Zernike coefficients (
lb zernike, theZERNoperand): the last few digits change, by about 1e-14 wavelengths; when there are too few points on the pupil for the fit, it now reports the reason and the fix in Chinese. - Evidence ids: for designs with two or more
lets that are not written in alphabetical order, the evidence ids of the merit function (merit) and ofcalcchange once; the numerical values themselves do not change.
Other
- Half-finished files left when you quit the program in the middle of an update download are cleaned up automatically at the next update check.
- The plain-language user agreement is at Terms of Service.