googlevr / tilt-brush-toolkit

Scripts and assets that help you use Tilt Brush data in your creative projects.
Apache License 2.0
744 stars 164 forks source link

Add C# version of TiltBrushToolkit #26

Closed Prystopia closed 5 years ago

Prystopia commented 5 years ago

Direct copy of python tools in C# covering parsing and writing .tilt files and parsing .json Tilt Brush export files.

googlebot commented 5 years ago

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers
Prystopia commented 5 years ago

I signed it

dubois commented 5 years ago

Hi. Thank you for the contribution! Unfortunately, we don't have the staffing to code-review and support new 3rd party code. Please consider forking instead.

andybak commented 5 years ago

Actually - this would probably be better placed in a separate repo.

(However - note to the dev team. This isn't giving out a terribly positive signal about the future of this project - activity across Google VR has been pretty quiet for months. Is it time to move on?)

Prystopia commented 5 years ago

Hi, I understand, it was a big piece of work to be checked through, thank you for your time.

I have uploaded the project into a new repo, which can be found here

andybak commented 5 years ago

The potential of this is huge. You could create a tool to algorithmically create or modify Tilt Brush files.

Imagine saving a piece of work, opening up a second (VR or non-VR) app and having a bunch of "filters" you could apply to manipulate the brush strokes. It's obviously not quite as cool as having a plugin architecture within Tilt Brush itself but it's still a fairly powerful way of extending the core functionality.

Prystopia commented 5 years ago

Yeah, the project was created for use within my Masters thesis, which did exactly that, using evolutionary algorithms to create and amend Tilt Brush models, you can create some really cool pieces of art.

n1ckfg commented 5 years ago

That sounds amazing--have you posted the results anywhere?

Prystopia commented 5 years ago

Thank you, no not yet, I am hoping to get something set up within the next week, but I'll reply to this thread as soon as it's live.

dubois commented 5 years ago

Regarding algorithmic modification of Tilt Brush sketches, we just released an Artist in Residence project called A Show of Kindness on Steam.

It uses a technique where the tilt is exported to USD (which the lastest TB supports now). USD is a Pixar format gaining traction in the 3d industry, and it has robust scripting and tooling support. The USD we export contains all the information from the .tilt as well as the fbx.

Jeremy Cowles (who was also the designer of USD) manipulated the USD scene to modify stroke timings and such, then imported it back into a new Unity project using USD.NET, which he wrote and made available on GitHub.

Personally, I think this approach is the correct one; rather than try to add another file format into the ecosystem, Tilt Brush should export to existing formats. It's just that before USD, there was no good candidate.

Looking forward to hearing more about your project!

n1ckfg commented 5 years ago

Wow, I had no idea that USD could support a displaying sequence of brushstrokes in a standardized way. (I've used hide or scale keyframes for exchange before, but I find those aren't interpreted consistently across different apps.)

That said, I do find tilt files are an efficient way to preserve the original stroke information--is there a way to generate a tilt file from scratch in the Python sdk, the way @Prystopia does with C#? I've got tilt import support in my Blender Grease Pencil plugin, but no export because all the code examples I've seen assume you're modifying an existing tilt file. (I've tried some permutations of Tilt() and Sketch() with no luck.)

Prystopia commented 5 years ago

Hi everyone, I've finally gotten around to writing an overview of the project which can be found here.