openjscam — это библиотека и набор инструментов на чистом JavaScript для генерации G‑code и создания траекторий для станков с числовым программным управлением (ЧПУ). Проект ориентирован на 2.5D CAM‑задачи и реализует элементы, совместимые с концепцией TPLang (язык шаблонов траекторий), предоставляя прикладные абстракции для описания контуров, операций фрезерования и параметров инструмента. В архитектуре библиотеки выделены компоненты для геометрической модели, планирования пути и экспорта в текстовый формат G‑code, что делает её пригодной для интеграции в веб‑приложения и настольные утилиты на базе Node.js.
Исторические сведения о проекте ограничены: если официальная документация или широкое сообщество отсутствуют, библиотека воспринимается как один из экспериментальных или нишевых инструментов в экосистеме веб‑ориентированного CAM. В таких случаях реализация чаще всего развивается силами независимых разработчиков и ориентирована на практическое применение — быструю генерацию управляющих точек, поддержку базовых циклов обработки и простое расширение за счёт пользовательских модулей. В описательной части далее приведены типичные возможности и типичный сценарий использования, основанные на общедоступных подходах к созданию аналогичных инструментов.
- Генерация G‑code: экспорт траекторий в стандартные команды G‑code для фрезерных и других станков ЧПУ, включая управление подачей, скоростью шпинделя и переходами между операциями.
 - 2.5D‑планирование пути: поддержка операций с разделением по уровням Z, многопроходной обработки и ступенчатой глубины резания для плоских и полуплоских объектов.
 - Поддержка TPLang‑элементов: реализованные шаблоны и конструкции для описания последовательностей операций и параметризованных траекторий, позволяющие повторно использовать правила обработки.
 - Геометрические примитивы: построение линий, дуг, полилиний и выдавливание профилей для формирования маршрутов обработки и вычисления компенсаций радиуса инструмента.
 - Кастомизация инструментов: задания параметров резца (диаметр, длина, профиль), режимов резания и ограничений по безопасности (ограничения по координатам, безопасная высота переноса).
 - Интеграция с веб и Node.js: использование в браузере и на сервере без нативных зависимостей, что упрощает встраивание в интерфейсы для предпросмотра и автоматизации.
 - Предпросмотр траекторий: алгоритмы построения контрольных точек и структур данных, пригодных для визуализации траекторий в сторонних рендерерах или встраиваемых компонентах.
 - Модульность и расширяемость: удобство добавления новых стратегий обработки, постпроцессоров G‑code и адаптации под специфические контроллеры станков.
 - Постпроцессоры: возможность настройки формата выходных команд для разных реализаций ЧПУ и адаптация синтаксиса под конкретные контроллеры.
 - Простота использования: API, ориентированное на сценарии генерации операций из геометрии и параметров, что облегчает автоматизацию типичных задач 2.5D‑CAM.