[DAO: QmUqfXP] Improving the Toolbox Smart Item In Builder

by 0xbd5b79d53d75497673e699a571afa85492a2cc74 (DecentralandGod)

Should the following Tier 2: a one-time payment of $1500 - $3000 USD in MANA grant in the Platform Contributor category be approved?



Add more functionality to the toolbox smart item to enable users to make more dynamic scenes

I will list the updates and then provide more detail below

  • Add a set of “Face Player/Item” and “Move to Player/Item”
  • Add “Follow path”
  • Improve the Move/Rotate/Scale code (TweenSystem) to be able to run 1 move,1 rotate,1 scale concurrently. Currently limited where only 1 action can be executed at a time move or rotate or scale.
  • Scene Add/remove
  • Attach/Detach Item

Demo / POC

[https://share.decentraland.org/b/scene/77318ec4-638b-4543-a727-688f51b371ce] (https://share.decentraland.org/b/scene/77318ec4-638b-4543-a727-688f51b371ce)

Grant size

3,000 MANA

Beneficiary address



Full Project Proposal Here dcl-smart-items-ce/toolbox-ce.md at master · wacaine/dcl-smart-items-ce · GitHub

Actions To Be Added

Face player

The target item will rotate towards the player at a configurable speed for how fast it rotates and stops when facing the player.

Face Item

The target item will rotate towards the target item at a configurable speed for how fast it rotates and stops when facing the player

Move to player

The target item will move towards the player who invoked it at a configurable speed for how fast it rotates and stops when facing the player

Move to item

The target item will move towards the item at a configurable speed for how fast it rotates and stops when facing the player.

Note on above

All of the above face/move actions will include lock X, Y, Z-axis which do as they suggest. It will prevent movement along the locked axis. This is useful if you wanted to move an item to the same Y coordinate as another item but update any other axis (basically have it move only in the up/down direction).

Follow Item Path

The target item will follow a path of defined items. This is like move to item however you list more than one item. It will also not follow the path strictly but more of a curved path AND rotate the object-oriented facing forward along the path. I do have a POC of this working however the Builder action UI is limited and I see no way to be able to pick an unlimited amount of items. I must pre-configure the max number of selectable items. I am also not sure how nicely this will work with multi-player. I plan on leaving this just as an advanced feature only the CE repo will have and not try to pull it into the main repo.

Motion Control

Allows a player to pause, stop, resume an action

Improve the Move/Rotate/Scale code (TweenSystem)

Currently, you can execute just one Rotation, Move, or Scale at a time. Executing two at the same time will cancel one of them out. I want to add the ability to enable 1 Rotation + 1 Move + 1 Scale all at the same time. More than 1 of these actions at the same time will have the same cancelation effect as the first just like today but only against that action type: move, rotate or scale.

Add Attach/Detach Item

Will attach 1 item to another giving the attached item the position, rotation, scale of the target/host object. This is very useful to move items in one group instead of individually. Attach centered flag.

Scene Add/remove

Action will let you remove/add an object. Not the most elegant way to handle the user experience object/movement but has its uses. One is removed objects do not contribute to scene limitations and boost scene performance.


Demo / POC

I started work the same day I saw the DAO Funding proposal as a POC and you can see the work I have completed here

[https://share.decentraland.org/b/scene/77318ec4-638b-4543-a727-688f51b371ce] (https://share.decentraland.org/b/scene/77318ec4-638b-4543-a727-688f51b371ce)

I estimate I have about 70% of the deliverable complete. I am optimistic that this proposal will be approved because I believe in the value of adding the toolbox functionality (I have already logged more hours than I probably should have not knowing if this will be funded or not). Should the funding be approved I will finalize my work and make it available as outlined in the deliverables below.


My Portfolio

I won first place in the recent CyberPunk Contes that included a mini-game. In the mini-game, I had to disable access to areas, disable platforms, keep track of how many times a user did something. I exclusively used the Builder and the provided smart items to make my scene. In doing so I am very familiar with the Builder and smart item current limitations.

View it in the scene pool here [https://builder.decentraland.org/view/pool/2b1522a0-3768-426f-990b-9cd716d9cb20] (https://builder.decentraland.org/view/pool/2b1522a0-3768-426f-990b-9cd716d9cb20)

I have made improvements to existing smart items.

Another contest submission for the Voxter Contest involved a smart asset they provided. You can find my submission here:
https://builder.decentraland.org/view/pool/a1890011-77d7-415c-aeb2-452e3a186391?realm=localhost-stub. Again I used the Builder and but this time also the SDK to enhance the Voxter smart item given to the contestants improving its experience and features in the Builder. Enhancements can be found here:
Features added during contest by wacaine · Pull Request #2 · pabloes/voxters · GitHub

Roadmap and milestones

Time to Complete

I am past the 70% completion mark already. I estimate at most more 2-weeks until completion from the time the proposal is accepted (sadly this is not my full-time job…yet! :slight_smile: ). Should the funding be approved I will finalize the work I have already started and make it available as outlined in the deliverables above.


The code will be publicly available at my public GitHub repository here. wacaine/dcl-smart-items-ce · GitHub. The reasoning for the name of the repository: “smart-items” since that is what they are and “ce” for Community Edition. I will upload the source code and a premade item.zip that can be dragged into the builder for usage. Directions on how to do that can be found here Import custom items | Decentraland

I will also open a pull request against the main smart-items repository (here GitHub - decentraland/smart-items: 💡Smart item examples). I will work with the Decentraland Foundation team to try and get it merged into the main repo so it will be even easier to make use of. There is no guarantee the Decentraland Foundation will merge this code into the main branch. This step is dependent on the Decentraland Foundation Team time to review, code standards, other projects/goals they have going on, and likely not be completed as quickly as the custom drag/drop item.

Vote on this proposal on the Decentraland DAO

View this proposal on Snapshot

My Goal

I want to enable those who are not developers, do not know the SDK or programming language to still be able to create beautiful dynamic scenes. I am an active user of the Builder tool (see my portfolio below) and I am very familiar with the Builder’s current limitations. I want to make the Builder better. By adding richer / more configurable smart items to the Builder I believe those smart items will help enable users to create better more dynamic scenes.

Thank you to everyone who voted! I will be busy finishing my work. I will have something for you very soon! Thank you again.

3rd Grant Submitted, 2nd Grant to reach +1 million VP, 1st Grant to Deliver*!

Check out the demo scene here: https://builder.decentraland.org/view/77318ec4-638b-4543-a727-688f51b371ce

Link to codebase: GitHub - wacaine/dcl-smart-items-ce

Check out the video of my 1.0 submitted work for my grant proposal. I delivered the first alpha release last night. This video shows how to use it. I need testers to find bugs. Some have been shocked I delivered the grant in 4 days. I may look that way but no I did not. I started work on it the day the Grant proposals were created. I have been working on it every day for past 39 days. Intro - Using Smart Item Toolbox CE in Decentraland Builder - YouTube Other videos here William Caine III - YouTube