@peripheralist's timeless, beautiful and dynamic Tiles project is reborn
Infinite Tiles v2 Solidity contracts are available on https://github.com/tankbottoms/tiles-on-chain.
Infinite Tiles v2 is an on-chain implementation of @peripheralist’s TilesDAO the second (2nd) project on Juicebox. The project is an homage to the venerable @peripheralist, the genius artist, developer, graph-wizard, sexy-man, person. Please send @peripheralist a Tweet telling him how awesome he is.
Infinite Tiles v2 contains the Solidity contracts. The repository structure employed a composable pattern which will be familiar with anyone involved in the Juicebox NFT minting toolkit. The InfiniteTiles contract uses Juicebox v2 terminal to forward any proceeds.
function _payTreasury(address _tile) private {
IJBPaymentTerminal terminal = jbxDirectory.primaryTerminalOf(jbxProjectId, JBTokens.ETH);
if (address(terminal) == address(0)) {
return;
}
(bool success, ) = address(terminal).call{value: msg.value}(
abi.encodeWithSelector(
terminal.pay.selector,
jbxProjectId,
msg.value,
JBTokens.ETH,
msg.sender,
0,
false,
(_tile == address(0) ? '' : tokenUriResolver.externalPreviewUrl(_tile)),
0x0
)
);
}
The Original Tiles visual algorithm can be found here. You may enter any number of Ethereum addresses here and the site will render a visualization of the Tile for you. Additionally as explained in the next section a number of routes will return different encodings of the Tile with the default route /render/:address
returning the Tile as a SVG image. i.e. 0x5d95baEBB8412AD827287240A5c281E3bB30d27E
On idle, any Tile on Tiles.wtf enters an animation state, like Groot, upon any mouse movement, the Tile returns to its position. This was entirely the creative genius of the epic @cookieslayer.
/render/:address
- renders the tile and returns Base64 encoded SVG./render/png/:address
- renders the tile and returns PNG./render/svg/:address
- renders the tile and returns SVG./render/particle/:address
- renders the tile and returns a particle animation, res high or low, and dark mode are optional parameters. By default light and low resolution modes are used./render/ethereal/:address
- renders the tile and returns an ethereal animation, in which each tile piece individually slowly fades away.
Most everything about the minting mechanics can be found at the https://tiles.wtf/faq, if you go hard core, than you may find these Etherscan instructions exciting and useful.
In addition to minting and viewing Tiles, the full Juicebox.money front-end is included and fixed to the Tiles Project Id of 175. This is easily changed. This is intended to demonstrate how a DAO would possibly present a minting experience, and possibly a open or token-gated Treasury management experience. A modification to the Activity component was made in to allow for the parsing of the SVG data provided by the smart contract during the pay-event.
This Svelte Juicebox v2 front-end is made available for anyone to use (see below for the fine print) with an existing Juicebox treasury.
Tiles can be used to TokenGate community pages or using GateKeeper IRL. I've started to require a Tile for even causal outings with friends.
yarn install
yarn build
yarn preview
yarn install
yarn dev
Use of the source-code is permitted for projects which route their Ethereum payments to the Juicebox Protocol. See the fine print.