Giter VIP home page Giter VIP logo

nengine_cpp's Introduction

Motivation

This is an experiment to evaluate tech stacks for a modern "NEngine", specifically as a c++ project. NEngine is an interactive simulation engine specialized in hyperspace generalization (for now, then comes non-euclidianess and, the special sauces ^_^).

Initial NEngine Project

Results

The conclusion was that c++ although a great language, and the current industry standard for interactive simulations, it is definetily on the dust now in a wide range of features, and its cleary being replaced by rust and zig in the appropiate parts, and rust specially is gaining an unprecedent adoption in some hard industry grounds.

Given this and the project specific constraints (huge codebase, many combinatorial features , and a specially repetitive need for generalized metaprogramming on N, etc) made it difficult to choose one over the other, but rust had to be choosen, as it is the most adopted, stable, and adecuate to handle the unprecedent, and inherent complexity. Zig would be ideal, comptime absence is a big pain on rust, but the tradeoffs wherent enough, specially for the potential size of the system.

Anyways, the language is not the most important, but the abstract types we can derive to create a real generalized solution to interactive simulations on exotic geometries. When (if) the promised language of the future comes, this will be happily rewriten on it, and its part of this codebase ethos. For now, rust is almost perfect to this, and zig can be included where it shows (if appropiately needed), and who knows, its should not be that difficult to add comptime to rust (sigh).

Current work

This repo will be updated anytime I find utility on implementing an algorithm in c++ to benchmark them against rust and zig versions. It already counts with a very raw vulkan renderer and basic abstractions for n-d geometric algorithms, like tensors.

Initial objectives (old readme extract)

Im rewritting an old n-d web interactive simulation engine into modern soil (?) c++, just for the sake of it (?).

The "primary task": nd engine: graphics/physics graphics: correct n-d rendering (volumetric rendering && superposition), vol-RTX physics: base solids, constraints

EXTRA: after the bare minimum of the primary task, im switching to rust.

NOTES: c++ modules lack support

nengine_cpp's People

Contributors

nicolasnarvaez avatar

Stargazers

 avatar

Watchers

 avatar

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.