— Enhanced Type Safety and Expressiveness for Production-Ready Mathematical Optimisation ModellingTOKYO, 5 February 2026 — JIJ Inc. (Headquarters: Minato-ku, Tokyo; CEO: Yu Yamashiro; hereinafter "JIJ") today announced the official release of JijModeling 2, a Python library for mathematical optimisation modelling.JijModeling 2 is the next-generation version that inherits the founding philosophy of "describing models in a form close to mathematical notation" whilst comprehensively redesigning the system with emphasis on safety, readability, and expressiveness demanded in practical and research environments. Through early error detection via a dedicated type system, Python-native syntax, and support for complex real-world data structures, JijModeling 2 provides robust support for team-based model development from research through to production deployment.Concurrently, new documentation and a migration guide for JijModeling 2 have been released.BackgroundJijModeling has been utilised in research and development settings as a Python library enabling mathematical optimisation models to be described in a form close to mathematical notation. However, through practical projects, the following challenges have emerged:Challenges Related to Model SafetyType mismatches and indexing errors went undetected until runtime, with issues only discovered during validation with large-scale dataInsufficient model validation before data ingestion led to prolonged development cyclesChallenges Related to Expressiveness and MaintainabilityNotation diverging from native Python syntax (such as Element definitions) resulted in a steep learning curve for Python engineersChallenges Related to Real-World DataLimitations in handling data formats common in practical applications, such as non-contiguous IDs, categorical variables, and sparse data structuresDifficulty naturally expressing complex combinatorial optimisation problems in supply chain, manufacturing, and financeTo address these challenges, JijModeling 2 has been redesigned from the ground up—syntax, API, and internal architecture—to realise a mathematical modelling environment that is "safer to write, clearer in intent, and capable of handling real-world complexity".Key Features of JijModeling 21. Separation of mathematical models and parametersJijModeling separates the symbolic definition of a mathematical model from input parameters (instance data). Instance data corresponds to coefficients and other inputs besides decision variables, and a mathematical model is compiled into solver input (an instance) only after instance data is provided.In this way, each model serves as a schema that produces instances from individual instance data, and you can modify the model without being affected by the size of the instance data.2. Solver-independent modelingMathematical models defined in JijModeling are ultimately compiled into instances expressed in the OMMX Message format. OMMX Message is a solver-independent data exchange format for mathematical optimization, so you can switch solvers freely among those provided by Jij (such as JijZeptSolver and OpenJij, etc.) and other solvers (such as SCIP, Gurobi, and FixstarsAmplify, etc.).3. Early error detection with type checkingJijModeling has its own type system to catch errors such as mismatched index dimensions while writing models. You can detect mistakes immediately, especially before inputting large instance data, which speeds up formulation.4. Automatic detection of constraint patternsSome mathematical optimization solvers offer faster algorithms for specific constraint structures. Typically, users must explicitly identify and invoke these optimizations. JijModeling can automatically detect such constraints and pass the information to the solver through OMMX, speeding up solution without user intervention. In the example below, simply enabling detection yields dramatic speedups.5. Math rendering of modelsJijModeling provides powerful math output, allowing you to inspect model definitions intuitively in the JijZept IDE, Google Colab, or standard Jupyter Notebook environments. With this, you can quickly and interactively confirm that your model is built as expected. Below is an example of a formulation of Knapsack Problem and its math output.DocumentationRefreshed Documentation for JijModeling 2Official documentation has been updated to align with JijModeling 2's design and syntax.https://jij-inc-jijmodeling-tutorials-en.readthedocs-hosted.com/enMigration Guide for JijModeling 1 UsersA migration guide outlining key transition points from JijModeling 1 to JijModeling 2 has been prepared for existing users.https://jij-inc-jijmodeling-tutorials-en.readthedocs-hosted.com/en/latest/references/migration_guide_to_jijmodeling2.htmlTechnical Background by the Lead DeveloperThe design philosophy and rationale behind changes in JijModeling 2 are detailed in a technical article by Lead Software Engineer Ishii, who led the development.https://zenn.dev/jij_inc/articles/2025-12-09-jijmodeling2-a-new-codeAvailability and UseInstalling via pip install jijmodeling will deploy JijModeling 2JijModeling 1 has transitioned to maintenance mode and will receive no further releases except for critical issuesJijZept AI-generated code currently utilise JijModeling 1 (migration timeline to be announced separately)Future OutlookJIJ positions JijModeling 2 as a foundational platform supporting the continuum from research and validation through to practical deployment. We will continue to pursue the following initiatives whilst enhancing the mathematical optimisation development experience through ongoing dialogue with our user community.About JIJ Inc.Company Name: JIJ Inc.Representative: Yu Yamashiro, Chief Executive OfficerLocation: INDEST403, Tokyo Tech Innovation Center,3-3-6 Shibaura, Minato-ku, Tokyo 108-0023, JapanEstablished: November 2018Business: Development and provision of enterprise optimisation solutions leveraging quantum-classical hybrid technologyWebsite: https://www.j-ij.com/en/Press EnquiriesJIJ Inc. Communications TeamEmail: pr@j-ij.com