Senior Software & Algorithm Engineer - 3D Cloth Simulation
Browzwear
- Amsterdam, Noord-Holland
- Vast
- Voltijds
- Algorithm Development: Design, implement, and optimize novel algorithms for real-time and offline 3D cloth simulation. This includes tackling challenges related to collision detection, self-collision, friction, and physical realism.
- Performance Optimization: Profile and identify performance bottlenecks within the existing simulation engine. Implement low-level optimizations to improve efficiency and scalability, utilizing techniques such as parallel computing and data-oriented design.
- System Architecture: Contribute to the architectural design and refactoring of the simulation codebase to enhance its modularity, maintainability, and extensibility.
- Problem Solving: Leverage advanced problem-solving skills to navigate the intricate domains of cloth simulation, from numerical stability to inter-object dynamics.
- 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.
- 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, are essential for our international team.
- 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 such as:
- Meshes and Geometry Processing: Working with triangle meshes, data structures for spatial queries, and geometric algorithms
- Partial Differential Equations: 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).
- Familiarity with physics engines like PhysX, Bullet, or internal proprietary engines.
- Knowledge of various simulation techniques like Mass-Spring systems, Position-Based Dynamics (PBD), or Finite Element Method (FEM).
- Experience with Deep Learning for Simulation: Knowledge of using machine learning models to accelerate or enhance physics simulations is a plus.
- Data Analysis: Experience with analyzing simulation results and verifying algorithms using data-driven methods.
- Software Development Methodologies: Experience working in modern development methodologies, including Agile, and proficiency with version control systems like Git.