
Senior Software and Algorithm Developer, 3D Cloth Simulation
Browzwear
full-time
Posted on:
Location: 🇮🇱 Israel
Visit company websiteJob Level
Senior
Tech Stack
PythonSpring
About the role
- 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.