Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Welcome to the Open Blocks Documentation
There is content here for both users of Open Blocks and for people that want to contribute to its development.
It's currently a massive work in progress and various links and info will be incorrect but we're just trying to get all the information currently available in one place.
Writing good docs takes time. We'd love people to help. Hop on our or just write some docs and let us know about them. There's a bunch of you out there who know more about actually using Open Blocks than we as developers do and your contribution would be invaluable.
Main
Grip
Move world
Trigger
Activate current tool or interact with a menu
Secondary
Directional left
Undo
Directional right
Redo
Trigger
Snap/Align (depending on tool)
Grip
Move world
A Button
Asset Browser
Both
Both Grips
Move and rotate world
Modifies parts of a shape - either moving, subdividing or extruding.
Main
Directional left
Subdivide mode
Directional right
Extrude mode
Directional up
Modify mode
Directional down
Plane cut mode
Trigger
Select/extrude/move/subdivide
Trigger (hold in subdivide mode)
Loop subdivide
Secondary
Trigger
Snap/Align
The ability to snap objects, edges and vertices together helps make your creations precise. However, we heard that the existing snapping behavior was often unpredictable or difficult to control. To ensure every snap you make does what you expect it to do, we’ve vastly improved our snapping algorithm and introduced a brand new user experience to guide you.
When trying to snap two objects together, make sure to half-press the alternate trigger to see a helpful guide line. The line will preview the spot to which your object will snap if the trigger is fully pressed. Use this guide to locate your snapping gesture to the exact face you intend before pressing the trigger all the way down.
You can also more easily snap meshes together. Let’s say, for example, that you’d like to snap a torus around a cylinder. Half-press the alternate trigger while placing the torus to get helpful guidelines for placing one mesh around the other. Fully press the trigger to snap the torus in place.
This section lists changes in our major releases and point releases.
There is also information on the current beta version.
When it was originally released - Google Blocks was designed to closely integrate with Google Poly - the 3d model sharing website by Google.
We have nearly finished work on a complete replacement - The Icosa Gallery which will be fully open source. You'll be able to save and publish your work and view or remix the work of others.
We hope to make a preview release of this functionality available in Q3 2024
Initial fixes for PC VR (PR #1 by @andybak)
Fix and reserialize assets (PR #8 by @andybak)
Change local save button action to one not requiring login (PR #9 by @andybak)
Fix camera rig errors (PR #6 by @andybak)
Fix Tutorial (PR #15 by @andybak)
Initial CI [copied from Open Brush] (PR #2 by @mikeage)
Actually run the release job (PR #5 by @mikeage)
Add pre-commit and reformat all files (PR #3 by @mikeage)
Add workflow jobs to make it easier to manage unity license secrets (PR #4 by @mikeage)
Save caches from branches (these are much smaller than Open Brush, so no need for the optimization here) (PR #18 by @mikeage)
Upload releases to Steam (PR #17 by @mikeage)
Automatically upload docs to open-blocks-docs (PR #19 by @mikeage)
Fix typo in steam release dependencies (cosmetic only) (PR #20 by @mikeage)
Merge upstream (PR #10 by @andybak)
Sync with upstream (PR #21 by @mikeage)
You can pick from four modeling environments. there is a night version of the current environment for those who find the desert a bit too bright after long creation sessions. You’ll also find plain white and black options. Make sure to look up while creating in the black environment for a night sky surprise. Plus, we’ll remember which environment you used in your last session and automatically default to that selection your next time around.
At the very bottom of your Blocks menu you'll now see a beaker icon which lets you access prototype versions of your most-asked-for features. Here’s a breakdown:
Many of you have noticed that Blocks will create coplanar faces when reshaping meshes. This is helpful in many cases, but in others it creates extraneous triangles that make further operations like perfect subdivision difficult. Now you can enable non-coplanar faces to avoid creation of extra triangles.
Subdivision can be a really powerful tool. It’s even more powerful if you can cut a loop around an entire mesh. With loop subdivide enabled, simply long press on the trigger while subdividing to see a perfect subdivision loop form around your object.
Many have asked for the ability to delete a single edge, face or vertex. With this feature enabled, use the eraser tool to do just that. We'll “collapse” the mesh based on the edge, face or vertex you delete.
Another option that helps with precision is enabling worldspace grids. This feature will show grids along every side of your worldspace. The grid units are equivalent to the actual worldspace grid units, so you can precisely measure and place objects along the grids.
Modeling very precisely in Blocks can be difficult without a sense of relative scale. This experimental feature allows you to enable a ruler when you are inserting a mesh. As you insert the object, you'll see relative measurements in meters appear on each axis so you can precisely and accurately measure every object relative to the others.
When reshaping a mesh you see a helpful wireframe around the section of the mesh you are reshaping. Many have asked for the ability to turn that wireframe on for the entire mesh, and this feature does exactly that.
Multi-selecting a lot of objects can be frustrating if you select the wrong object in the middle of your selection process. We wanted to make this easier, so we’ve experimented with allowing you to undo and redo steps in your multi-selection. You can use the undo and redo buttons on your non-dominant controller to undo or redo the selection of objects in order. Make sure to keep your trigger held down while undoing or redoing to ensure you can keep multi-selecting after correcting your mistake!
It’s important to note that since these features are experimental, there may be minor bugs or issues when using them.
Blocks is open source 🎉
Hey VR creators,
Read on to hear the story so far...
Originally developed in-house by Google, Blocks was one of the first VR-native creation apps, designed to make 3D modelling intuitive and accessible for everyone. With just six simple tools - Shape, Stroke, Paint, Modify, Grab, and Ease - users could effortlessly create 3D objects. Blocks’ user-friendly interface lowered the barrier to entry, allowing even beginner modellers to jump into VR content creation.
We've been working hard with the Google Blocks team in the last few weeks to bring the codebase to a usable state, so anyone should now be able to download and run the Unity project.
However, it's not enough to just release what already exists...
We pushed hard for the Blocks code to be released, and we're committed to keeping its spirit alive. Naturally, we are going to release and maintain our own community-led version under the Icosa banner, just as we have done with Open Brush.
We're working hard to bring the Open Blocks codebase up to modern standards. First up, we've switched to use the OpenXR framework and new input system within Unity, enabling us to target Open Blocks for a much wider range of XR devices. We have created a standalone XR port, which brings Open Blocks to the Quest (and soon Pico) platform. Next, there are be plenty of opportunities to add immersive XR features such as MR passthrough.
We'll also be adding glTF import support, more base shapes, an improved colour palette and support for our Poly replacement, Icosa Gallery. This will be instrumental in unlocking Open Blocks' full potential for asset creation and remixing.
Our long term roadmap will transform Open Blocks into a full modelling suite, giving you more control over materials, adding texturing support, and enabling more powerful tools from traditional CSG pipelines.
We invite developers, artists, and XR enthusiasts to join our community and help shape the future of Open Blocks. Thousands of users rely on tools like Open Blocks and Open Brush daily for their XR productivity. Your contributions - whether through code, donations, feedback, or community engagement - are crucial to driving this project forward and ensuring it continues to evolve and improve.
Stay tuned for more updates, and let’s create something amazing with Open Blocks!
Happy modelling, The Icosa Foundation Maintainers
Google Blocks is ! We're extremely excited to announce that our fork, naturally called Open Blocks, is already in development and will be joining in providing free XR creation tools to everyone.
Sadly, Blocks was last updated in 2018, and has sat dormant since then. Around the time Tilt Brush , we inquired if the same could happen for Blocks, but we were informed it wasn't possible. We got on with the development of Open Brush and our Poly replacement Icosa Gallery, and Blocks was left in the dark.
Earlier this year, we thought we'd try again! We reached out to both former and current members of the original Google Blocks team who worked on Blocks, and found they were eager to find a way forward for us. A little while later, Google approved the release of the .
You can install Open Blocks from and the (or manually from Github for or ) Other stores/platforms coming soon...
Check out our , try the pre-release , and share your feedback on our . Together, we can create a powerful, community-driven tool that enhances VR creativity for everyone.
We want to extend a big thank you to the Google Blocks team for their hard work with the original application, and for making the source code available to the community. We'd like to give a special shout-out to , who helped us reach out to the team and get the ball rolling. Their support has been instrumental in enabling us to bring Open Blocks to the community.
Icosa Foundation was created with the mission of preserving and maintaining the legacy of Google's Poly platform, realized in . We also quickly grew to maintain , a fork of Google’s discontinued VR painting app Tilt Brush. We’re dedicated to preserving and enhancing these creative tools, ensuring they remain accessible and continue to grow with the needs of the ever changing XR landscape.
If you would like to support us financially, we have an page. Any funds raised go towards maintaining our free software, with contributions going towards bug bounties, freelance developers, store fees, and paying for server infrastructure. Any support is greatly appreciated. Links
Add a new shape (icosahedron) ( by @andybak)
New Modify Tool mode based on previously experimental "plane subdivide" ( by @andybak)
URP post processing ( by @andybak)
When extruding multiple faces use each face's own normal ( by @andybak)
Fix extrude direction ( by @andybak)
Use the original algorithm when extruding a single face ( by @andybak)
gzip config.vdf before storing as a secret ( by @mikeage)
Run the build on 'main' periodically to keep the caches alive ( by @mikeage)
Combine all dependabot PRs into one ( by @mikeage)
Use PAT to create releases and tags ( by @mikeage)
Sync cleanup with Open Brush (most importantly, add support for ubuntu-24.04) ( by @mikeage)
Bump actions/setup-python from 5.1.1 to 5.2.0 ( by @dependabot[bot])
Bump the all-actions-updates group with 2 updates ( by @dependabot[bot])
Works on Linux thanks to Proton experimental ( by @Utopiah)
Fix chown error in newer Alpine images [affects new builds without caches] ( by @mikeage)
OpenXR and URP ( by @andybak)
Releases for Open Blocks are TEENS_AND_ADULTS. ( by @mikeage)
The quickest way to get support is often to come and chat to us on our although you can
We are also active on social media - primarily on (we are winding down our but the account is still active during the transition. We also have accounts on and - and we'll hopefully soon be more active on Tiktok, Mastodon and For more technical issues - especially those related to the code or integrating your software with Open Blocks then we have a
We would like to thank Google both for generously releasing the original Blocks source code as open-source and for their financial contribution that helped us port to standalone headsets
This privacy policy discloses how Icosa Gallery Ltd (hereinafter "Icosa Gallery", “us”, "we") handles and protects, and values your information
The purpose of this page is to inform users of the Open Blocks application (the "App") and/or our customer support service (this service and the App hereinafter referred to as the "Services") regarding our policy with the collection, use, and disclosure of Personal Information of any users of our Service.
By using our Services, you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Services. We will not use or share your information with anyone except as described in this Privacy Policy.
Information Collection and Use
As per Meta requirements, the App receives information about the users' age group, but this information is never stored and is immediately discarded.
Privacy policy updates
We reserve the right to modify this privacy policy at any time, so please review it frequently. Changes and clarifications will take effect immediately upon their posting on the website. If we make material changes to this policy, we will notify you here that it has been updated, so that you are aware of what information we collect, how we use it, and under what circumstances, if any, we use and/or disclose it.
This project is partly funded through , a fund established by with financial support from the European Commission's program. Learn more at the .
Open Blocks is developed and managed by the
You can email us at
We are also active on
All code is available on our
We are gratefully accepting donations via
Social Media:
In order to provide customer service for our users, you may . During this transaction it is likely that we will receive Personal Information (e-mail address, and any other Personal Information you may include). Your Personal Information will only be used to provide you with the support requested, and will not be processed for any other reason. Any emails we receive will be kept on record to enable us to provide continued customer service, but you are free to request Personal Information deletion at any time by contacting us on the same email:
Updates/Opting Out If you would like to access, correct, amend or delete any personal information we have about you, you are invited to contact us by .