Developer Guide
This guide is for developers who want to extend SMath Studio or integrate it into other applications and workflows.
Plugins¶
Plugins extend what SMath Studio can do — from importing/exporting third-party file formats to adding new symbolic or numeric evaluation capabilities and new sheet elements. End users install them through the built-in Extensions Manager, either from the Online gallery or offline.
To build a custom plugin:
- Install SMath Studio and Visual Studio Community.
- Create a Class Library (.NET Framework) project.
- Implement one or more of the
IPlugin-derived interfaces (for example, interception of operators/functions, numeric evaluation, custom sheet regions, or file I/O). - For plugins that render custom graphics or sheet regions, the SMath Studio Drawing library provides the same platform-independent, SVG-based rendering used by the engine itself.
- Build in Debug mode and attach the debugger to the running SMath Studio process (
Solver.exe) to test your plugin.
Publishing a plugin¶
Once your plugin is ready, the standard delivery process is:
- Upload the plugin source code to the public open-source repository.
- Register the plugin in the Release Manager and point it to the repository path.
- Build the plugin in the Release Manager and resolve any warnings or errors.
- Publish the plugin to the plugin registry. First-time publications may require verification by the SMath team.
Once published, the plugin becomes available to all users through the Extensions Manager.
Integration and automation¶
SMath Studio Enterprise, when properly licensed, can be integrated into other applications and automated workflows (see Integration for details):
- Command line — a one-off calculation can be triggered with
SMathStudio_Desktop.exe -silent. - Calculation Service — a longer-running service that can be loaded once and reused for multiple calculations, including several instances running in parallel.
Open source code¶
Sources for open plugins, integration examples, and mathematical handbooks are published in our public repository, available with anonymous read access. Write access can be requested from support@smath.com.