New material creation workflow for milling and lathe modes.
Dynamic material update without page reload for supported milling operations.
Added material edit mode with an on-screen material editing badge and material movement inside the working area.
Improved material add/delete dialogs and lathe stock setup UI.
Improved mobile site behavior and modal layout on small screens.
Added STOP action for emergency program stop, reset, and browser process recovery.
Added online users indicator.
Updated What's New, Hotkeys, Measure Tools, and material dialogs to the NCPlayer modal style.
Localized Bounds, Measure Tools, line count, last saved time, and unit labels in the information panel.
Removed duplicate Optional Stop button from the top toolbar; Optional Stop remains available from the menu.
Improved right-side information panel: hidden obsolete Total Duration output and kept bounds data localized.
Version 2.13 — 24.04.2026
Added day and night themes with saved preference in localStorage.
Added themed styling for menus, modals, right-side controller panels, tables, the ACE editor, and simulation backgrounds.
Added a Solid Simulation toggle in the View menu and translated the Simulation Settings UI.
Improved the mobile layout, including Switch behavior, simulation controls, footer-safe positioning, and persistent program/simulation pane state.
Improved menu access for NC Assistant, controller selection, and Optional Stop.
Version 2.12 — 23.04.2026
Added a Program Runtime report in the Tools menu, built from the preprocessed program.
The report shows per-tool path and time totals for rapid moves, feed moves, arcs, canned cycles, dwell, and tool changes, with Rapid Override and Feedrate Override controls.
Added a new 26-face 3D view manipulator shaped as a rhombicuboctahedron-style solid, with clickable main planes, edge chamfers, and corner chamfers, including the XYZ triangle for isometric view.
Added mandatory authorization via a free NCPlayer account for protected actions such as opening your own NC files.
Version 2.11 — 22.04.2026
Added Inspection Mode for simulation review, allowing direct analysis of the generated toolpath.
Clicking a toolpath point now jumps back to the matching source line in the ACE editor, with tooltip preview on hover.
Added selected-segment highlighting, a direction arrow, and a compact movement popup with Start XYZ, End XYZ, Delta XYZ, modal state, and macro-related values when available.
Added Toolpath to DXF export from the File menu so the simulated path can be saved after controller-specific parsing and macro expansion.
Added the DXF Export Settings dialog with options for LINE/POLYLINE, projection mode, layer organization, rapid-move inclusion, and Z-level precision.
Version 2.10 — 20.04.2026
Added a feedback modal form so users can share their experience with NCPlayer, ask questions, report problems, or suggest missing features and additional CNC control support.
Added legal information links to the footer, including Terms & Conditions, Privacy Policy, Cookie Policy, Refund Policy, and Legal Information links with language-aware behavior where localized legal pages are available.
Added a separate “Found an error?” modal form for reporting bugs, incorrect behavior, or suspected issues directly from the interface.
Added the first stage of lathe simulation support, including FANUC Lathe mode.
Added X coordinate mode selection for lathe simulation: diameter or radius representation.
Added a dedicated turning tool model for lathe simulation instead of using the milling tool shape.
Added cylindrical stock creation for lathe simulation via Add/Delete Material — Lathe.
Kept the existing rectangular material workflow unchanged for milling simulation, while lathe mode now uses a separate cylindrical stock workflow.
Version 2.0 — 19.04.2026
The project has moved to nc.cncpassport.com and is now developed as part of this project.
Added HAAS VF-series support, including a dedicated HAAS VF-1 controller profile and simulator configuration.
Added SYNTEC 6MB support with a dedicated simulator file and Syntec macro syntax handling.
Added Syntec macro programming support for := assignments, IF/ELSE/END_IF, WHILE/END_WHILE and FOR/END_FOR.
Improved macro variable handling so assigned values are shown in the variable table during simulation.
Improved controller-specific parser compatibility while keeping FANUC, HAAS and SYNTEC simulation files separated.
Updated the overall simulator styling and interface presentation.
Fixed controller selection persistence so SYNTEC 6MB remains selected after page reload and controller URL changes.
Version 1.6 — 11.11.2025
Added full CNC machine support to the simulator: X/Y/Z axes, spindle and tool model now move in sync with the simulated toolpath instead of staying static.
Implemented full JOG mode: manual jogging per axis with configurable step/continuous motion, plus RAPID toggle, all respecting machine travel limits.
Added G53 machine-coordinate return logic: the simulator now supports “return to machine zero” sequences in the same order as a real controller (safe Z first, then X/Y).
On STOP, the simulator now performs a visual “return to machine zero” of the machine model, so the homing sequence is clearly visible in 3D.
On START, added a simulated “approach to program start”: the machine moves from machine zero to a safe position above the first block of the program, then transitions to the work coordinate system (G54) before beginning cutting moves.
Introduced unified limit checking for all machine motions (simulation, JOG, G53): any attempt to leave the allowed travel range is clamped and reported as an OVERTRAVEL warning.
Improved camera behavior during machine motions: the view now stays readable during JOG, homing and approach moves, making it easier to follow the spindle and tool.
Added configuration hooks to enable/disable machine-kinematics support independently of the classic “toolpath-only” view, so older workflows remain compatible.
Performance Monitor — shows FPS and memory; toggle in Help menu, state persisted via localStorage.
Coords Box — displays cursor X/Y/Z (raycast on model); toggle in Help menu, state persisted.
Version 1.5 — 25.10.2025
Full implementation of all drilling cycles (G81, G82, G83, G73, G85, G80).
Added support for peck drilling cycles with automatic retract and feedrate control.
Implemented G04 dwell (P/X) with real-time notification during simulation.
Added M00 (Program Stop) and M01 (Optional Stop) support — full Feed Hold behavior with resume capability.
Introduced an “Optional Stop” button with persistent toggle (localStorage-based) for M01 control.
Improved synchronization between dwell, feed-hold, and pause controllers to ensure stable simulation flow.
Improved toolpath visualization for cycles and spirals.
New demo program browser with toolpath preview.
Version 1.103 — 16.07.2025
Added support for conditional jumps using the IF [...] GOTO xxx syntax and logical operators: EQ, NE, GT, GE, LT, LE, including support for nested expressions and mathematical functions (SIN, FIX, ROUND, etc.).
Fixed an issue where negative values could not be assigned to local macro variables (e.g., #2 = -0.51504).
Version 1.102 — 15.07.2025
Added support for conditional jumps using the IF [...] GOTO xxx syntax and logical operators: EQ, NE, GT, GE, LT, LE.
The expression parser now supports variable substitution and nested mathematical functions inside IF conditions.
Added protection against infinite loops — the simulation stops after executing more than 500,000 lines, with a warning in the console and a popup message.
Added support for unconditional jumps GOTO: GOTO 120 jumps to line N120 in the same O program; formats like GOTO N120 are rejected as invalid.
Added support for M98 Pxxxx L#yyy — the L parameter can now be a variable (e.g., #512) evaluated before subprogram repetition.
Version 1.101 — 14.07.2025
Added full support for mathematical expressions using FANUC functions inside address expressions (e.g., X[SIN[...]], #100=ROUND[...], etc.).
Added toggleResizeEditor button — switch between compact width, width by the longest line, and full editor width.
Automatic adjustment of editor width depending on G-code content.
Added modal tool Renumber Blocks (N) with functions:
Renumber All Blocks
Renumber without blank and comments
Renumber existing Blocks only
Renumber without Block Skip Char
convertIJKtoR — keeps Nxxx, removes modal G2/G3, calculates R for INC/ABS, removes IJK, adds R, unifies center handling.
Switched to internal hierarchical menu structure for better organization.
Added Refresh Plot function — re-parse and reload the current NC code without auto-simulation.
Refresh Plot also saves the program before reload and updates the last save time.
Added Block Skip (/) support in step-by-step simulation mode.
Added functions to switch between 2D and 3D views from the main menu.
Added the ability to insert and remove Block Skip (/) characters on specified lines or for the entire program.
Added the ability to delete all lines starting with Block Skip (/).
Version 0.131 — 04.07.2025
• New "Follow Tool" camera mode: automatically tracks the tool position in real time during simulation.
• "Fit to View" function: automatically centers and scales the entire toolpath.
• "View Center of Tool" option: focuses the view on the current tool position.
• Arc conversion: 6 G-code transformation functions for arcs (IJK ↔ R, ABS ↔ INC) with G17/G18/G19 plane support and legacy syntax (G02/G03).
• Garbage removal: cleans G-code from unnecessary or corrupted lines.
• "Pan Mode" in 3D: move the scene with the mouse using a toggleable hand cursor.
• Improved arc conversion engine: preserves arc mode between consecutive lines without explicit G2/G3 commands.
• Fixed IJK→R conversion: removes unnecessary K axes in the G17 plane.
• All conversion results now automatically set the ArcMode status (IJK_INC, IJK_ABS, R) in the worker.
Version 0.130 — 02.07.2025
• jumpToBottom(): quick jump to the end of the NC program. Button available in the interface.
• jumpToTop(): instant scroll to the beginning of the program.
• G/M/T formatting:
- Shortening G00–G09 → G0–G9, M00–M09 → M0–M9, T00–T09 → T0–T9.
- Normalizing G0–G9 → G00–G09 and similarly for M and T.
• Print current view: save the 3D simulation view as PNG and open it in a new tab for download or printing.
• EOB character management (;): addeob() and deleteeob() functions to add or remove ; at the end of lines.
• Program printing: full or selective printing of highlighted code lines.
Version 0.129 — 01.07.2025
• Support for Copy/Cut/Paste/Undo/Redo via hotkeys and menu.
• Select line range using buttons with highlighting in the ACE editor and the ability to copy.
• Coordinate conversion:
- G91 → G90 with recalculation of all coordinates to absolute.
- G90 → G91 with recalculation of all moves to relative.
- Remove G90 and insert G91 at the beginning.
• "Format" menu: remove line numbers, extra spaces, empty lines, and comments; change case.
• Intelligent formatting based on the selected CNC type.
Version 0.128 — 29.06.2025
• Line-by-line G-code decoding in real time, tracking modal group states, tool position, and M/S/T codes.
• New state variables: currentModalStateAtLine, currentPositionAtLine, miscCodesAtLine.
• jumpToLine(row) now updates the decoding panel using saved data.
• Machine configuration switching, default — FANUC 0i.
• Additional camera views in the "View" menu, including isometric.
Version 0.127 — 28.06.2025
• ABS/REL coordinates display: coordinates in absolute and relative modes update in real time during simulation.
• Relative coordinates calculation: computed based on the previous tool position for each line.
• FANUC G-code modal group tracking: support for groups 01–20 with real-time updates of active codes.
• Dynamic modal group table: generated based on official Fanuc charts.
• M/S/T/F/D/H code monitoring: values are displayed in real time during simulation.
• Visual table of M/S/T/F/D/H values: added to the additional information panel.
• Improved simulateSteps logic: parsing and applying modal and auxiliary codes dynamically.
• Multi-format G-code support: compatibility with formats like G0/G00/G01/G1 and similar.
Version 0.126 — 27.06.2025
• Stock support: clearance and positioning parameters, automatic stock size detection from the model.
• Stock removal: button to clear parameters from localStorage.
• Drag & Drop loading: support for dropping .nc files directly into the editor.
• Tool change modal window: adapted for mobile devices.
Version 0.125 — 26.06.2025
• Tool positioning: right-clicking a G-code line moves the tool in the 3D scene to the corresponding point on the toolpath.
• F2+... hotkeys: added on-screen hint with shortcuts.
• Smart G-code search: 3 search modes — general, in selection, and by line range.
• Replace function: edit G-code text in place.
• UI improvements: new Google technical font, redesigned dropdown menus with alignment and shortcut display on the right.
• Modal window closing: via ESC key, including the file open dialog.
• Input blocking when using hotkeys: prevents accidental typing when holding keys.
• Program saving: added to the top menu with status and timestamp.
Version 0.124 — 25.06.2025
• Fixed double scroll issue in the NC program block.
• Program export: ability to export NC code.
• Mobile version: adaptive mode with limited functionality.
• Active plane selection: improved in simulation mode.
• Mouse button behavior: reworked in the simulation area.
• Toolpath highlight reset: fixed bug after pressing “Stop”.
• Code highlighting: added color markup during parsing.
Version 0.1 — 24.06.2025
• Program ID storage: in localStorage using UUID.
• Auto-redirect: with ?nc=UUID parameter if absent in the URL.
• Program saving: writes editor contents to a temporary file.
• Demo program: loads and visualizes sample G-code.
• Line indicator: synchronized with position in the editor.
• Editor resizer: manually adjust G-code panel width.
• Two simulation modes: SIMULATION and INSPECTION.
• Speed saving: slider value stored in localStorage.
• Fullscreen mode: state saved and restored.
• Right panel state: saved in localStorage.
• Trail state: stored in localStorage.
• Grid: switches mm/cm/dm depending on zoom level.
• View selection (2D/3D): saved in localStorage.
• Clicking a line in the editor: moves the tool in 3D to the corresponding point.
• "From L" function: run simulation from the selected line.
• Step simulation from L: animation starts from any block.
• "What's New" panel: loaded from whatsnew.dat and accessible from menu.
• Modal window support: with background dimming and vertical scrolling.
• ACE editor improvements: line centering, highlight clearing.
• Simulation resume: properly restored after pause.
• Tool movement animation: smooth transition with TWEEN.
• G-code segment parsing: supports fragmented blocks and error reporting.
• Line centering: when jumping to a line in the editor.
• Control button synchronization: top and center controls.
• Parameter storage: view, fullscreen, grid, speed, trail, L.
• Dialog expansion preparation: overlay support.
• "From L" state saving: works after page reload.
• Stop cleanup: resets markers, pauses, stops animation.