Algorithm Development: Design, implement, and optimize novel algorithms for real-time and offline 3D cloth simulation (collision detection, self-collision, friction, physical realism).
Performance Optimization: Profile and identify performance bottlenecks within the existing simulation engine; implement low-level optimizations using parallel computing and data-oriented design.
System Architecture: Contribute to architectural design and refactoring of the simulation codebase to enhance modularity, maintainability, and extensibility.
Problem Solving: Tackle numerical stability, inter-object dynamics, and complex simulation challenges using advanced problem-solving skills.
Collaboration: Work closely with other teams to integrate the simulation system into a larger pipeline and meet project requirements.
Research: Stay current with the latest research and industry trends in real-time physics and computer graphics.
Impact: Improve Browzwear's core 3D cloth simulation system to enhance visual quality and performance of the product.
Requirements
Strong Technical Background: A Bachelor's or Master's degree in Computer Science, Mathematics, Physics, or a related field.
At least 5+ years of professional experience in software engineering, with a significant focus on developing physics-based simulations, computer graphics, or related fields.
Fluent in English: Excellent communication skills, both written and verbal.
Expertise in C++ and Python: Exceptional C++ programming skills are a must, along with proficiency in Python for scripting and tool development.
Numerical Methods: A deep understanding of numerical integration methods, linear algebra, and related topics.
Meshes and Geometry Processing: Working with triangle meshes, data structures for spatial queries, and geometric algorithms.
Partial Differential Equations: Knowledge of PDEs as the mathematical basis for many physical phenomena.
Optimization Theory: Understanding of optimization algorithms for solving non-linear systems.
3D Math: Strong proficiency in 3D mathematics, including vectors, matrices, and quaternions.
Simulation Knowledge: Direct experience with cloth, soft body, or rigid body physics simulations.
Performance Optimization: Experience with performance optimization and multi-threaded programming using tools like CUDA, Intel oneAPI, Intel Threading Building Blocks (TBB), and Intel Math Kernel Library (MKL).
Software Development Methodologies: Experience working in modern development methodologies, including Agile, and proficiency with version control systems like Git.
Nice to haves: Familiarity with physics engines like PhysX, Bullet, or internal proprietary engines; Knowledge of simulation techniques like Mass-Spring systems, Position-Based Dynamics (PBD), or Finite Element Method (FEM); Experience with Deep Learning for Simulation; Data Analysis skills.