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

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

  • Comments

    Be the first to comment!

    Similar Projects

    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


    Implement a CLI tool for Trento - trentoctl by nkopliku

    Description

    Implement a trentoctl CLI for interacting with a trento installation

    Goals

    • learn rust
    • implement an initial trentoctl tool to enhance trento automation
    • have fun

    Resources

    trento rust. TUIs listed on this other hackweek project Hack on rich terminal user interfaces


    Hack on isotest-ng - a rust port of isotovideo (os-autoinst aka testrunner of openQA) by szarate

    Description

    Some time ago, I managed to convince ByteOtter to hack something that resembles isotovideo but in Rust, not because I believe that Perl is dead, but more because there are certain limitations in the perl code (how it was written), and its always hard to add new functionalities when they are about implementing a new backend, or fixing bugs (Along with people complaining that Perl is dead, and that they don't like it)

    In reality, I wanted to see if this could be done, and ByteOtter proved that it could be, while doing an amazing job at hacking a vnc console, and helping me understand better what RuPerl needs to work.

    I plan to keep working on this for the next few years, and while I don't aim for feature completion or replacing isotovideo tih isotest-ng (name in progress), I do plan to be able to use it on a daily basis, using specialized tooling with interfaces, instead of reimplementing everything in the backend

    Todo

    • Add make targets for testability, e.g "spawn qemu and type"
    • Add image search matching algorithm
    • Add a Null test distribution provider
    • Add a Perl Test Distribution Provider
    • Fix unittests https://github.com/os-autoinst/isotest-ng/issues/5
    • Research OpenTofu how to add new hypervisors/baremetal to OpenTofu
    • Add an interface to openQA cli

    Goals

    • Implement at least one of the above, prepare proposals for GSoC
    • Boot a system via it's BMC

    Resources

    See https://github.com/os-autoinst/isotest-ng


    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