Skip to content

acmpesuecc/VectorX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

VectorX ๐Ÿš€

A High-Performance 2D Physics Engine in C ๐Ÿ› ๏ธ

Overview ๐ŸŒŸ

Celeris is a powerful and efficient 2D physics engine written in C, designed to simulate realistic object interactions in virtual environments. It features robust collision detection, force dynamics, and energy conservation, all within a modular architecture that is easy to integrate into various applications, such as game development and physics simulations.

Features โœจ

  • Realistic Physics Simulation: Simulates motion, collision, and response of objects with high accuracy. โš™๏ธ
  • Modular Design: Well-organized structure allows easy customization and extension. ๐Ÿงฉ
  • Efficient Performance: Optimized for speed, making it suitable for real-time applications. โšก
  • Comprehensive Documentation: Includes detailed guides for developers and users. ๐Ÿ“š
  • Unit Testing: Ensures reliability and correctness through extensive tests. โœ…
  • Cross-Platform: Build and run on different operating systems with ease. ๐ŸŒ

Project Structure ๐Ÿ—‚๏ธ

Celeris/
โ”œโ”€โ”€ Makefile  
โ”œโ”€โ”€ README.md  
โ”œโ”€โ”€ assets/  
โ”‚   โ”œโ”€โ”€ models/  
โ”‚   โ”œโ”€โ”€ shaders/  
โ”‚   โ””โ”€โ”€ textures/  
โ”œโ”€โ”€ build/  
โ”œโ”€โ”€ docs/  
โ”‚   โ”œโ”€โ”€ README.md  
โ”‚   โ”œโ”€โ”€ design_document.md  
โ”‚   โ”œโ”€โ”€ developer_guide.md  
โ”‚   โ””โ”€โ”€ user_guide.md  
โ”œโ”€โ”€ include/  
โ”‚   โ”œโ”€โ”€ body.h  
โ”‚   โ”œโ”€โ”€ camera.h  
โ”‚   โ”œโ”€โ”€ collision.h  
โ”‚   โ”œโ”€โ”€ collision_response.h  
โ”‚   โ”œโ”€โ”€ constraint.h  
โ”‚   โ”œโ”€โ”€ force_generator.h  
โ”‚   โ”œโ”€โ”€ input.h  
โ”‚   โ”œโ”€โ”€ integration.h  
โ”‚   โ”œโ”€โ”€ material.h  
โ”‚   โ”œโ”€โ”€ physics_world.h  
โ”‚   โ”œโ”€โ”€ renderer.h  
โ”‚   โ”œโ”€โ”€ timer.h  
โ”‚   โ”œโ”€โ”€ utils.h  
โ”‚   โ””โ”€โ”€ vector.h  
โ”œโ”€โ”€ src/  
โ”‚   โ”œโ”€โ”€ body.c  
โ”‚   โ”œโ”€โ”€ camera.c  
โ”‚   โ”œโ”€โ”€ collision.c  
โ”‚   โ”œโ”€โ”€ collision_response.c  
โ”‚   โ”œโ”€โ”€ constraint.c  
โ”‚   โ”œโ”€โ”€ force_generator.c  
โ”‚   โ”œโ”€โ”€ input.c  
โ”‚   โ”œโ”€โ”€ integration.c  
โ”‚   โ”œโ”€โ”€ main.c  
โ”‚   โ”œโ”€โ”€ material.c  
โ”‚   โ”œโ”€โ”€ physics_world.c  
โ”‚   โ”œโ”€โ”€ renderer.c  
โ”‚   โ”œโ”€โ”€ timer.c  
โ”‚   โ”œโ”€โ”€ utils.c  
โ”‚   โ””โ”€โ”€ vector.c  
โ”œโ”€โ”€ tests/  
โ”‚   โ”œโ”€โ”€ test_body.c  
โ”‚   โ”œโ”€โ”€ test_collision.c  
โ”‚   โ”œโ”€โ”€ test_collision_response.c  
โ”‚   โ”œโ”€โ”€ test_integration.c  
โ”‚   โ”œโ”€โ”€ test_physics_world.c  
โ”‚   โ””โ”€โ”€ test_vector.c  
โ””โ”€โ”€ tools/  
    โ”œโ”€โ”€ clang-format  
    โ”œโ”€โ”€ clang-tidy  
    โ”œโ”€โ”€ valgrind_suppressions.supp  
    โ””โ”€โ”€ Dockerfile  

Getting Started ๐Ÿš€

Prerequisites ๐Ÿ› ๏ธ

  • C Compiler: GCC or Clang
  • Make: For building the project
  • Git: For version control
  • CMake (optional): For alternative build configuration

Installation โš™๏ธ

  1. Clone the Repository:
    git clone git@github.com:acmpesuecc/VectorX.git
    cd celeris
  2. Build the Project: Using Make:
    make
    Or using CMake:
    mkdir build
    cd build
    cmake ..
    make
  3. Run the Tests:
    make test

Usage ๐ŸŽฎ

  • Include the Engine: Integrate the include/ and lib/ files into your project.
  • Link Libraries: Make sure to link against the Celeris static library if you're using external projects.
  • Execute: Run the compiled binaries from the bin/ directory.

Documentation ๐Ÿ“–

  • Developer Guide: For understanding the architecture and contributing to the project.
  • User Guide: For instructions on integrating and using the engine in your projects.
  • Design Document: In-depth explanation of the design decisions and system architecture.

Contributing ๐Ÿค

We welcome contributions! Please see our Contributing Guide for more details on how to contribute.

License ๐Ÿ“œ

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments ๐Ÿ™

Special thanks to the open-source community for providing the tools and libraries that made this project possible. Inspiration and techniques drawn from various physics engines and game development resources.

Celeris ๐Ÿš€

A High-Performance 2D Physics Engine in C ๐Ÿ› ๏ธ

Overview ๐ŸŒŸ

Celeris is a powerful and efficient 2D physics engine written in C, designed to simulate realistic object interactions in virtual environments. It features robust collision detection, force dynamics, and energy conservation, all within a modular architecture that is easy to integrate into various applications, such as game development and physics simulations.

Features โœจ

  • Realistic Physics Simulation: Simulates motion, collision, and response of objects with high accuracy. โš™๏ธ
  • Modular Design: Well-organized structure allows easy customization and extension. ๐Ÿงฉ
  • Efficient Performance: Optimized for speed, making it suitable for real-time applications. โšก
  • Comprehensive Documentation: Includes detailed guides for developers and users. ๐Ÿ“š
  • Unit Testing: Ensures reliability and correctness through extensive tests. โœ…
  • Cross-Platform: Build and run on different operating systems with ease. ๐ŸŒ

Project Structure ๐Ÿ—‚๏ธ

Celeris/
โ”œโ”€โ”€ Makefile  
โ”œโ”€โ”€ README.md  
โ”œโ”€โ”€ assets/  
โ”‚   โ”œโ”€โ”€ models/  
โ”‚   โ”œโ”€โ”€ shaders/  
โ”‚   โ””โ”€โ”€ textures/  
โ”œโ”€โ”€ build/  
โ”œโ”€โ”€ docs/  
โ”‚   โ”œโ”€โ”€ README.md  
โ”‚   โ”œโ”€โ”€ design_document.md  
โ”‚   โ”œโ”€โ”€ developer_guide.md  
โ”‚   โ””โ”€โ”€ user_guide.md  
โ”œโ”€โ”€ include/  
โ”‚   โ”œโ”€โ”€ body.h  
โ”‚   โ”œโ”€โ”€ camera.h  
โ”‚   โ”œโ”€โ”€ collision.h  
โ”‚   โ”œโ”€โ”€ collision_response.h  
โ”‚   โ”œโ”€โ”€ constraint.h  
โ”‚   โ”œโ”€โ”€ force_generator.h  
โ”‚   โ”œโ”€โ”€ input.h  
โ”‚   โ”œโ”€โ”€ integration.h  
โ”‚   โ”œโ”€โ”€ material.h  
โ”‚   โ”œโ”€โ”€ physics_world.h  
โ”‚   โ”œโ”€โ”€ renderer.h  
โ”‚   โ”œโ”€โ”€ timer.h  
โ”‚   โ”œโ”€โ”€ utils.h  
โ”‚   โ””โ”€โ”€ vector.h  
โ”œโ”€โ”€ src/  
โ”‚   โ”œโ”€โ”€ body.c  
โ”‚   โ”œโ”€โ”€ camera.c  
โ”‚   โ”œโ”€โ”€ collision.c  
โ”‚   โ”œโ”€โ”€ collision_response.c  
โ”‚   โ”œโ”€โ”€ constraint.c  
โ”‚   โ”œโ”€โ”€ force_generator.c  
โ”‚   โ”œโ”€โ”€ input.c  
โ”‚   โ”œโ”€โ”€ integration.c  
โ”‚   โ”œโ”€โ”€ main.c  
โ”‚   โ”œโ”€โ”€ material.c  
โ”‚   โ”œโ”€โ”€ physics_world.c  
โ”‚   โ”œโ”€โ”€ renderer.c  
โ”‚   โ”œโ”€โ”€ timer.c  
โ”‚   โ”œโ”€โ”€ utils.c  
โ”‚   โ””โ”€โ”€ vector.c  
โ”œโ”€โ”€ tests/  
โ”‚   โ”œโ”€โ”€ test_body.c  
โ”‚   โ”œโ”€โ”€ test_collision.c  
โ”‚   โ”œโ”€โ”€ test_collision_response.c  
โ”‚   โ”œโ”€โ”€ test_integration.c  
โ”‚   โ”œโ”€โ”€ test_physics_world.c  
โ”‚   โ””โ”€โ”€ test_vector.c  
โ””โ”€โ”€ tools/  
    โ”œโ”€โ”€ clang-format  
    โ”œโ”€โ”€ clang-tidy  
    โ”œโ”€โ”€ valgrind_suppressions.supp  
    โ””โ”€โ”€ Dockerfile  

Getting Started ๐Ÿš€

Prerequisites ๐Ÿ› ๏ธ

  • C Compiler: GCC or Clang
  • Make: For building the project
  • Git: For version control
  • CMake (optional): For alternative build configuration

Installation โš™๏ธ

  1. Clone the Repository:
    git clone https://github.com/yourusername/celeris.git
    cd celeris
  2. Build the Project: Using Make:
    make
    Or using CMake:
    mkdir build
    cd build
    cmake ..
    make
  3. Run the Tests:
    make test

Usage ๐ŸŽฎ

  • Include the Engine: Integrate the include/ and lib/ files into your project.
  • Link Libraries: Make sure to link against the Celeris static library if you're using external projects.
  • Execute: Run the compiled binaries from the bin/ directory.

Documentation ๐Ÿ“–

  • Developer Guide: For understanding the architecture and contributing to the project.
  • User Guide: For instructions on integrating and using the engine in your projects.
  • Design Document: In-depth explanation of the design decisions and system architecture.

Contributing ๐Ÿค

We welcome contributions! Please see our Contributing Guide for more details on how to contribute.

License ๐Ÿ“œ

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments ๐Ÿ™

Special thanks to the open-source community for providing the tools and libraries that made this project possible. Inspiration and techniques drawn from various physics engines and game development resources.

About

VectorX is a high-performance 2D physics engine in C, designed for realistic object interactions in virtual environments. It features robust collision detection, force dynamics, and energy conservation, all within a modular architecture. Ideal for game development and simulations, VectorX is built for scalability and easy integration.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors