Coder Social home page Coder Social logo

sandbox's Introduction

Sandbox

CI Apache

Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita. It's also a precursor for an ongoing game project. Sandbox is written in Rust.

Screenhot

Download for MacOS, Windows and Ubuntu

Download from Releases. MacOS release build still requires VulkanSDK to be installed and libs found in /usr/local/lib. Linux and Windows should work as is.

Features

  • Vulkan renderer with Vulkano
  • Gui with Egui using egui_winit_vulkano
  • Cellular Automata simulation with Compute Shaders (Why? To see if I can)
  • Deformable pixel objects with Matter from .png images
  • Customizable matters & their reactions
  • Simple physics using Rapier
  • More

Development

Windows

Ensure following libs are installed: cmake, ninja, python

Ubuntu

sudo apt-get install build-essential git python cmake libvulkan-dev vulkan-utils libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev

MacOS

See MacOS installation. Basically you need Vulkan SDK on mac and it should then work out of the box.

Running

cargo run --package sandbox --release

Run tests & checks with ./run_checks.sh before pushing & making a PR.

Building Cross Compiled Releases on Ubuntu

Run run_build_dist.sh.

Notes

I'd be very happy to see improvement suggestions. This is very unoptimized at this point, thus there are plenty of things to improve on. For example, there is barely any parallelization apart from some par_iters.

sandbox's People

Contributors

hakolao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sandbox's Issues

Crash when deforming objects

thread '<unnamed>' panicked at 'index out of bounds: the len is 2 but the index is 2', /home/okko/.cargo/git/checkouts/parry-cfbedab32ac7a479/d6629d0/build/parry2d/../../src/shape/convex_polygon.rs:131:48
stack backtrace:
   0: rust_begin_unwind
             at /rustc/092e1c9d23158d81be27bb6f71bdd0c6282478fb/library/std/src/panicking.rs:498:5
   1: core::panicking::panic_fmt
             at /rustc/092e1c9d23158d81be27bb6f71bdd0c6282478fb/library/core/src/panicking.rs:110:14
   2: core::panicking::panic_bounds_check
             at /rustc/092e1c9d23158d81be27bb6f71bdd0c6282478fb/library/core/src/panicking.rs:77:5
   3: <parry2d::shape::convex_polygon::ConvexPolygon as parry2d::shape::polygonal_feature_map::PolygonalFeatureMap>::local_support_feature
   4: parry2d::query::contact_manifolds::contact_manifolds_pfm_pfm::contact_manifold_pfm_pfm
   5: <parry2d::query::default_query_dispatcher::DefaultQueryDispatcher as parry2d::query::query_dispatcher::PersistentQueryDispatcher<ManifoldData,ContactData>>::contact_manifold_convex_convex
   6: parry2d::query::contact_manifolds::contact_manifolds_composite_shape_composite_shape::contact_manifolds_composite_shape_composite_shape::{{closure}}::{{closure}}::{{closure}}::{{closure}}
   7: parry2d::query::contact_manifolds::contact_manifolds_composite_shape_composite_shape::contact_manifolds_composite_shape_composite_shape::{{closure}}::{{closure}}
   8: parry2d::partitioning::qbvh::QBVH<T>::traverse_depth_first
   9: parry2d::query::contact_manifolds::contact_manifolds_composite_shape_composite_shape::contact_manifolds_composite_shape_composite_shape
  10: <parry2d::query::default_query_dispatcher::DefaultQueryDispatcher as parry2d::query::query_dispatcher::PersistentQueryDispatcher<ManifoldData,ContactData>>::contact_manifolds
  11: rapier2d::geometry::narrow_phase::NarrowPhase::compute_contacts
  12: rapier2d::pipeline::physics_pipeline::PhysicsPipeline::detect_collisions
  13: rapier2d::pipeline::physics_pipeline::PhysicsPipeline::step
  14: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  15: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute
  16: rayon_core::registry::WorkerThread::wait_until_cold
  17: rayon_core::registry::ThreadBuilder::run
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

program not opening

i extract the file and run the executable and it creates a text file called engine_run.log which contains the text, "20:13:04 [INFO] Creating renderer for window size [1920, 1080]" and then nothing else happens. I am on windows and i have python, cmake, and ninja installed, and i have allowed the program to run. Any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.