fxhackathon 2023: co-creation interfaces
Building custom minting interfaces with fx(params)
Open call for submissions
**fxhash invites artists to participate in a six-week hackathon centered around developing custom minting interfaces for fx(params). The deadline for submissions has been extended till September 17th, 2023.
fx(params) is a powerful module allowing generative artists to define a set of parameters that collectors explore, adjust, and toggle before minting. This feature amplifies artistic powers of expression and enables collectors to collaborate in the creative process.
Soon after we launched params, generative artist Alejandro requested the ability to control parameters from the code itself for his project Pensado a mano. We integrated his request into the fx(params) toolkit, allowing artists to define a parameter as code-driven and to update the parameters in the minting UI from their own code.
The addition of code-driven parameters mode opens up the exciting prospect of building custom minting interfaces for fx(params) projects. Artists now have total control over how their collectors/co-creators interact within the parametric spaces defined by their generative projects, allowing for interactions of new depths to emerge and influence artwork.
In practice, any custom minting interface can be built on top of params while also (optionally) utilizing web-compatible inputs such as a mouse, keyboard, microphone, camera, MIDI, and more. As such, artists can craft highly custom, imaginative, and unforgettable experiences where moments of co-creation are forever embedded in the final generative outputs, such as in Piter Pasma’s groundbreaking Universal Rayhatcher project.
fxhackathon is a call to create and explore boundary-pushing custom minting interfaces excitingly made possible by our new code-driven params mode. We invite you to create projects centered around developing minting interfaces that emphasize an era of co-creation between artists and collectors. The top projects will then be selected by the jury, awarding them each with:
- a prize of 1000 xtz
- displayed at the ACCESS exhibition
ACCESS is the first fxhash community exhibition. If selected a winner, your project will be considered for the exhibition in 2023/2024.
Hackathon project goals
The end result of your work over the six-week time period should be to mint a novel, creative, and innovative fx(params) project that takes advantage of the code-driven params field to develop a custom minting interface. The emphasis of this project is to make sure your design encourages meaningful interactions between the artist, artwork, and collector.
As well as the foregoing, it’s highly encouraged that you and/or your team document your project and publish the overview on fx(text). This documentation, while not necessary but certainly appreciated, can serve to clearly illustrate how you achieved the project and to give both jurists and collectors an in-depth look at your process.
See Project Submission Requirements and FAQ.
Boilerplate project
We've prepared a project based on our main boilerplate leveraging the new features required for this hackathon. We recommend using it as a starting point.
🔗 github.com/fxhash/fxhash-boilerplate/tree/hackathon-2023
fx(params) toolkit relevant changes
Below are the details about how code-driven params mode works. We’ve also created an fxhackathon channel in our discord — please reach out to the team there if you have any questions.
Defining a parameter as code-driven
{
id: "size",
name: "Size",
type: "number",
// uneditable from ui, will be controlled by the code!!
update: "code-driven"
}
Open the doc
Updating the parameter from the code
$fx.emit("params:update", {
size: Math.random(), // anything here, it will update the parameter value
});
// when the params are updated, then re-draw
$fx.on(
"params:update",
// we do nothing when the event is received
() => {},
// once the params are updated and available, we trigger a re-draw
() => {
draw();
}
);
Open the doc
Execution context available in the code
// the code is executed in a "minting" context
if ($fx.context === "minting") {
minting() // trigger the code for the minting display
}
// the piece is ran by itself, for the final output or for the capture
else {
final() // trigger the code for the final version
}
Open the doc
Reset the seeds
Resetting the fx.rand function is important if you want the UI to display some features of the final output, since you may need to re-draw from scratch
// to reset the PRNG on the hash
$fx.rand.reset()
// to reset the PRNG on the minter address
$fx.randminter.reset()
Open the doc
Workshop sessions
Alongside the hackathon are collective workshop sessions with each of the jury panelists. They are:
- Anika Meier, curator and writer
- Alejandro, generative artist
- ciphrd, fxhash founder
- Piter Pasma, generative artist
June 28, 5 pm CET / 11 am EST
Unveiling fx(params) by ciphrd
This workshop will provide an overview of the changes made to fx(params), and the use-cases they enable. It proposes a discussion to think about the impact such changes will have on the generative art landscape on-chain.
July 10, 5 pm CET / 11 am EST
Concept Development. How to Tell a Story by Anika Meier
Yes, art needs a storyline. The artist tells this story not only through the art but also by communicating about the art online and offline. Generative Art has a long and rich history; all of us are standing on the shoulders of giants. The history—the past, present, and future—is the starting point for developing a concept that might be able to stand the test of time.
In this session, Anika Meier will discuss approaches on how to keep the bigger picture in mind when working on projects. The workshop will take place via Google Meet at the following link: https://meet.google.com/vot-pczo-ojg
July 12, 5 pm CET / 11 am EST
Creative inputs as parametric space. Algorithm meets Hand by Alejandro
On March 20, 2023, fxhash introduced fx(params), a powerful new module allowing generative artists to define a set of parameters that collectors explore, adjust, and toggle before minting. However, beyond customizing artworks by tweaking sets of sliders, fx(params) covertly offered a creative opportunity to propose innovative modes of interaction. This workshop explores the use of creative inputs as parametric space, delving into Pensado a mano Pensado a mano as an example.
July 20, 5 pm CET / 11 am EST
Navigating the Unimaginable: Parameter selection and the Curse of Dimensionality by Piter Pasma
Did you know that high-dimensional spheres are spiky? The parameters for your generative art project form a high dimensional space, in which weird and counter-intuitive things can happen. Learn to navigate these spaces, the pitfalls, and be a guide for your collectors exploring this alien landscape using the new fx(params) functionality.
In this session, Piter Pasma will also talk about the challenges and development of Universal Rayhatcher, which originally started out to prove a point about the Curse of Dimensionality, spectacularly backfiring into a huge success.