SDKs overview
ITIS (IT'IS Foundation) specializes in advanced computational methods for electromagnetic and acoustic simulations, particularly in the context of biological systems and medical device safety ITIS homepage. Unlike many API-first companies, ITIS primarily offers desktop and server-based software platforms such as Sim4Life and SEMCAD X. These platforms include built-in scripting interfaces and software development kits (SDKs) that allow users to extend functionality, automate tasks, and integrate with external tools.
The developer experience with ITIS products is centered around scientific programming, enabling researchers and engineers to perform complex simulations, analyze results, and validate designs. The SDKs are designed to facilitate customization of simulation workflows, parameter studies, and post-processing of data, rather than direct external API calls to a web service. This approach supports specialized applications in fields requiring rigorous scientific validation, such as compliance with medical device standards like those outlined by the W3C Medical Data and Devices Community Group.
Official SDKs by language
ITIS provides SDKs primarily through its flagship simulation software, Sim4Life and SEMCAD X. These SDKs are typically integrated within the software environment and rely on scripting languages to provide programmatic access. The primary language supported for scripting and SDK interactions is Python, due to its widespread adoption in scientific computing, data analysis, and automation.
The Python SDKs allow users to:
- Define and modify simulation geometries.
- Set up physical properties and boundary conditions.
- Control simulation parameters and execution.
- Extract and post-process simulation results.
- Automate repetitive tasks and integrate with external data sources or analysis tools.
While Python is the primary interface, some advanced functionalities or specific modules might expose interfaces callable from other environments, though Python remains the most common and officially supported method for programmatic interaction. For details on specific modules and their programmatic interfaces, users should consult the official ITIS documentation.
Official SDKs Table
| Language | Package/Module | Install Command (Example) | Maturity |
|---|---|---|---|
| Python | Sim4Life Python API | pip install sim4life-sdk (if external, otherwise integrated) |
Stable (Integrated within Sim4Life) |
| Python | SEMCAD X Python API | pip install semcadx-sdk (if external, otherwise integrated) |
Stable (Integrated within SEMCAD X) |
Installation
The installation of ITIS SDKs differs significantly from typical web API client libraries because they are intrinsically tied to the core ITIS simulation software. For Sim4Life and SEMCAD X, the Python SDKs are generally bundled with the main application installation. This means that once the primary software suite is installed, the necessary Python modules and libraries are already available within the software's execution environment.
For Sim4Life and SEMCAD X:
- Install the Core Software: The first step is to install Sim4Life or SEMCAD X, which are proprietary software packages. Installation typically involves downloading an installer from the ITIS website after obtaining a license. Follow the instructions provided with the specific software version.
- Accessing the Python Environment: Both Sim4Life and SEMCAD X often come with their own embedded Python interpreter or provide clear instructions on how to integrate with an existing Python installation. Users can usually access the Python console directly within the application or by launching a script from the software's interface.
- External Python Integration: For developers wishing to use an external Python environment (e.g., Anaconda, Miniconda), ITIS provides guidelines in its documentation on configuring environment variables or Python paths to ensure compatibility. This allows developers to use their preferred IDEs and package management tools while still interacting with the installed simulation software. Specific configuration steps for linking an external Python environment to Sim4Life functionalities can be found in the Sim4Life Python API guide.
It is important to note that direct pip install commands for a standalone, publicly available package are less common for the core SDK components. Instead, the installation is part of the larger software deployment. Any external Python packages required for analysis or data manipulation can be installed using standard Python package managers (pip) into the relevant Python environment.
Quickstart example
This quickstart example demonstrates how to use the Sim4Life Python SDK to create a simple simulation setup. This script assumes Sim4Life is installed and the Python environment is correctly configured to communicate with it. The example focuses on defining a basic geometric object and setting up a simple simulation scenario.
import sim4life_sdk as s4l
# Initialize Sim4Life connection (if running externally)
# In many cases, this is handled automatically if script is run from within Sim4Life
# s4l.app.open()
# Create a new project
project = s4l.app.new_project("MyFirstSimulation")
# Add a new solid object (e.g., a sphere)
sphere = project.create_sphere("MySphere", radius=0.01, center=(0, 0, 0))
# Set material properties
sphere.set_material("water") # Assuming 'water' material is defined in Sim4Life
# Define a simulation setup (e.g., an electromagnetic simulation)
em_sim = project.create_em_simulation("MyEMSim")
em_sim.add_source(s4l.sources.FarFieldSource(frequency=2.45e9))
em_sim.add_monitor(s4l.monitors.ElectricFieldMonitor(plane='xy', position=0))
# Save the project (optional)
project.save_as("C:/Simulations/MyFirstSimulation.sm4")
print(f"Simulation project '{project.name}' created with a sphere and EM setup.")
# To run the simulation, you would typically use:
# em_sim.run()
# results = em_sim.get_results()
This snippet illustrates how the Sim4Life SDK allows programmatic control over model creation and simulation setup. Users can iterate on designs, perform parametric sweeps, and automate data collection, which is crucial for applications like iterative medical device design and safety validation, as discussed in engineering design principles by Microsoft's Azure Simulation Workbench documentation.
Community libraries
Given the specialized nature of ITIS's simulation software and its primary use in scientific research and industrial development, the landscape for independent, open-source community-contributed libraries is different compared to general-purpose web APIs. While there isn't a broad ecosystem of third-party SDKs or client libraries in the traditional sense, the community primarily contributes through:
- Scientific Python Packages: Many researchers and engineers using ITIS software rely on a rich ecosystem of general scientific Python libraries for pre-processing input data, post-processing simulation results, and visualization. These include libraries like NumPy, SciPy, Matplotlib, and Pandas. While not specific to ITIS, they are essential companions for any developer working with the ITIS SDKs.
- Custom Scripts and Workflows: Within research institutions and companies, users often develop and share custom Python scripts and workflow automation tools that interact with the Sim4Life or SEMCAD X Python APIs. These scripts are typically shared within specific research groups or organizations rather than being published as standalone, open-source libraries.
- Integration with Jupyter Notebooks: Developers frequently use Jupyter Notebooks for interactive development, data analysis, and documentation of their simulation workflows, combining ITIS SDK calls with other scientific computing tools.
Finding these community contributions often requires engaging with academic forums, specialized conferences, or direct collaboration within specific research domains focused on electromagnetic compatibility, medical implants, or bioelectromagnetics. The ITIS developer resources page often points to relevant research papers and case studies that might include examples of such custom integrations.
Developers looking to collaborate or find existing community-driven code might explore platforms like GitHub or GitLab for projects tagged with terms like "Sim4Life Python," "SEMCAD X scripting," or "bioelectromagnetics simulation." However, these are less about client libraries for a public API and more about specialized research tools built on top of the core ITIS software.