Project Description

The Entity Component System is Data-driven architectural pattern, using composition over inheritance (contrary to Object Oriented programming). It is used in complex systems such as simulators, games, and Fintech; where the projects specify an array of complex systems that are loosely coupled. Projects where one needs to horizontally expand and change the behavior of a small subset of systems knowing that there will be no unwanted behavioral change carried to others, while at the same time provide a way to expand functionality that can be reused by a big number of the systems.

A Flight Dynamic Model is a physics model for a flying object such as a plane. These models are present in flight simulators and games, and vary in accuracy and complexity: from simulating simple forces over a specificied wing area, using graphs from real wind tunnel experiments, to performing a virtual real-time wind tunnel against the shape of the aircraft, simulating propeller wash, ground effect, vortex effect, and others.

eXtended Position Based Dynamics is a novel approach (2020) to simulating physics that is both more performant and accurate than typical approaches.

Goal for this Hackweek

Implement the Flight Dynamic Model specified in "Physics for Game Developers, by Bryan Bywalec, David M Bourg", in an ECS. Particularly:

  • In the Bevy Engine. A performant and very ergonomic ECS engine, that provides massive parallelization for free, with a cache-friendly architecture for the resulting code.

  • Using bevy_xpbd: A physics library using the novel eXtended Position Based Dynamics, available for Bevy. XPBD is both more performant and accurate than other physics approaches. In addition, it supports variable time deltas, which could allow to simulate and reconcile the state of the world in a concurrent, desynchronized way.

Resources

  • Book "Physics for Game Developers, by Bryan Bywalec, David M Bourg"
  • https://bevy-cheatbook.github.io
  • https://www.youtube.com/watch?v=jrociOAYqxA
  • https://scholar.afit.edu/cgi/viewcontent.cgi?article=5914&context=etd

Looking for hackers with the skills:

rust physics simulator xpbd bevy flightsimulation planes

This project is part of:

Hack Week 23

Activity

  • about 1 year ago: vcuadradojuan started this project.
  • about 1 year ago: vcuadradojuan added keyword "flightsimulation" to this project.
  • about 1 year ago: vcuadradojuan added keyword "planes" to this project.
  • about 1 year ago: vcuadradojuan added keyword "xpbd" to this project.
  • about 1 year ago: vcuadradojuan added keyword "bevy" to this project.
  • about 1 year ago: vcuadradojuan added keyword "simulator" to this project.
  • about 1 year ago: vcuadradojuan added keyword "rust" to this project.
  • about 1 year ago: vcuadradojuan added keyword "physics" to this project.
  • about 1 year ago: vcuadradojuan originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Write an url shortener in Rust (And learn in the way) by szarate

    So I have 469.icu :), it's currently doing nothing... (and for sale) but in the meantime, I'd like to write an url shortener from scratch and deploy it on my own server

    https://github.com/foursixnine/url-manager-rs/tree/main


    Hacking on sched_ext by flonnegren

    Description

    Sched_ext upstream has some interesting issues open for grabs:

    Goals

    Send patches to sched_ext upstream

    Also set up perfetto to trace some of the example schedulers.

    Resources

    https://github.com/sched-ext/scx


    Kanidm: A safe and modern IDM system by firstyear

    Kanidm is an IDM system written in Rust for modern systems authentication. The github repo has a detailed "getting started" on the readme.

    Kanidm Github

    In addition Kanidm has spawn a number of adjacent projects in the Rust ecosystem such as LDAP, Kerberos, Webauthn, and cryptography libraries.

    In this hack week, we'll be working on Quokca, a certificate authority that supports PKCS11/TPM storage of keys, issuance of PIV certificates, and ACME without the feature gatekeeping implemented by other CA's like smallstep.

    For anyone who wants to participate in Kanidm, we have documentation and developer guides which can help.

    I'm happy to help and share more, so please get in touch!


    Better diff'ing experience by MSirringhaus

    Description

    For diff-ing directories, I usually like to use meld, but it struggles a lot with large trees. Experiment with writing a TUI meld-clone for diffing directories and files

    Goals

    Get first prototype going of a TUI that can show

    • diffs of text-files
    • diffs of directories.

    Stretch goals

    • Themes
    • Filters (no whitespace, etc.)
    • Live config changes (Show/hide line numbers, etc.)


    SMB3 Server written entirely in Rust by dmulder

    Description

    Given the number of bugs frequently discovered in the Samba code caused by memory issues, it makes sense to re-write the smbd service purely in Rust code. Meanwhile, it would be wise to abandon backwards compatibility here with insecure protocol versions, and simply implement the SMB3 spec.

    Goals

    Get a simple server up and running and get it merged into upstream Samba (which now has Rust build support).

    Resources