Giter Site home page Giter Site logo

mirabuf's Introduction

Mira 3D Format npm version GenerateDocs BuildProto

Open source file definition for storing, rendering, and translating physical data from generic 3D model assemblies.

You can find build artifacts from the latest build under the Actions Tab

  • python
  • cpp
  • java

Documentation is available as a Build Artifact for now in the GenerateDocs build action.

DOCUMENTATION SITE

NOTE:

Currently there are actually two different file formats that are connected here, the Assembly and the World.

You do not need to have the World file to run just the Exporter.

Building

Build All - Seperate

protoc -I=. --python_out=./libs/python --java_out=./libs/java --cpp_out=./libs/cpp ./*.proto

go, c#, swift, rust, node can have additional dependencies

Python

protoc -I=. --python_out=./libs/python ./*.proto

Go

go install google.golang.org/protobuf/cmd/protoc-gen-go protoc -I=. --go_out=./libs/go ./*.proto

Java

protoc -I=. --java_out=./libs/java ./*.proto

CPP

protoc -I=. --cpp_out=./libs/cpp ./*.proto

C#

protoc -I=. --csharp_out=./libs/c# ./*.proto

Swift

protoc -I=. --swift_out=./libs/swift ./*.proto

Rust

cargo install protobuf-codegen

protoc-gen-rust -- make sure cargo is in path

protoc --rust_out ./libs/rust *.proto

Node

To build node you can choose to use the supplied js compiler or use a third party.

I opt to use protobufjs to generate the package and ts bindings.

If you want a zero library implementation you can use the default js_out and rip the build artifact typing.

Before compiling with this take the time to figure out if commonjs is the right module for you and look over the cli arguments to configure it for however you want to use it.

npm i -g protobufjs && mkdir libs/node

pbjs -t static-module -w commonjs -o libs/node/mirabuf.js *.proto

cd ./libs/node

pbts -o mirabuf.d.ts mirabuf.js

mirabuf's People

Contributors

aaron7317 avatar hices avatar kyrovibe avatar nickburrell avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

nickburrell

mirabuf's Issues

Synthesis Engine Requested Changes

  • Body no Transform
  • Limits type of Vectors to just float
  • Part remove children component
  • PartDefinition rename transform to override transform
  • Add Documentation labels
  • Remake GraphData to just have Node relationships without Edges
  • Add UserData message for additional serializable information
  • TriangleMesh should only have Appearance ? -< maybe but it's packages with physical
  • Split Friction into Static Friction and Dynamic Friction
  • TraingleMesh Fix UV types
  • Translation remove everywhere and replace with SpatialTransform
  • PhysicalMaterial add Restitution

Fix Separation of Appearance and Physical Material

While I was writing the parser I noticed that there is no easy way of separating the visual properties of the format with the physical properties so there needs to be a change so that we can specifically access the Physical Data outside of just the appearance data.

We also need a way to index these seperately.

Current Materials Link

Right now it boils down to:

Materials -> Map<string, Material> -> { ID, Appearance, PhysicalMaterial }

This means to get the appearance you need to save a reference to the Materials map ID value which will then give you visual and physical data.

This might not even be possible as they can contain the same physical data with multiple appearance values.

There is also no way of accessing the physical data from a physics viewpoint.

namespace

lets either remove the namespace or add the namespace to all of our files.

I think that we can rightfully assume that the namespace can be whatever the user want's to alias it after they import the library.

However I'm also okay with exporting a common namespace or file specific namespace.

Create go package

Need to create a go package that is built and published on release version.

Create Conan package

Need to create a make file to create a shared library to be published to Conan in a action.

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.