🕰️ Reflections on the Past Year
I accomplished a lot of things I wanted to do, but boy was this not a fun year. It might have been the hardest year of my life, if you keep score of things like that. But we persist. I am hoping that all of the groundwork and foundation-laying and lesson-learning that cost so much time and energy can be transmuted into more joy, space, and fun next year.
🔑 Key Themes
For the past few years I have been trying to express some core themes through both my technical and creative outputs.
Interconnectedness of all things
I keep returning to the concept of the interconnectedness of all things – which I believe to be a fundamental concept that underlies a lot of the philosophies that I think have the best ability to shape the world for the better.
Interconnectedness can be expressed literally through network diagrams, analysis, and visualizations. Taking real-world data and showing the invisible connections is a repeatable approach that can be applied to a wide variety of subject matter to gain new insights and a unique outlook on something.
I think there is also more exploration to be done around LLMs as a conduit for interconnectedness. Interacting with an LLM could be charitably viewed as having a conversation with all human knowledge, or a unique new way to commune with universal consciousness.
The World is Editable
I think a lot of people think that a lot of the systems in the world are written in stone; and they aren't. The world is very changeable, and one of the amazing things about technology and the era that we live in is that with the right technological leverage, huge changes can be made in very little time. I want my friends and my community to understand the power that lies in this worldview. If you see something that is broken, take the time to fix it forever, and then move on to the next thing.
🌟 Vision for the Year
I really want to focus on growing and building the studio, creating a creative environment where me and smartest and kindest and most creative people I know create unique tools, visualizations, and art that no one has ever seen before and that helps make the world better.
Personal Goals
- Self-Care and Discipline: Implementing a morning routine that prioritizes meditation before coffee and screens, aiming to establish a habit stack that promotes well-being.
- Connecting with the Arts Community: Overcoming social anxiety by attending art openings, classes, and workshops locally. Exploring opportunities to engage in local art-related activities and volunteer work to build connections and friendships centered around creativity.
- Physical Fitness Goals: Achieving "match ready" fitness through a varied workout regimen that includes bodyweight exercises, balance and flexibility training, and reaction speed exercises. Considering the development of an AI tool to assist in structuring and balancing workout routines.
- Mental Health and Social Interaction: Working on managing social anxiety, with an emphasis on being more active in social settings and community events. Finding comfort in attending events alone and engaging with new people who are doing cool stuff.
Professional Goals
- Sustainable Studio Practice: Establishing a stable client base with a mix of main clients and pro bono work, aiming for sustainable growth and consistent work.
- Award and Recognition: Aspire to win an award like a Webby for innovative work, particularly in digital storytelling, data visualization, or cartography.
- Impactful Projects: Engaging in projects that make a societal impact, ideally breaking news or bringing important concepts to a wider audience.
- Product Development from Internal Tools: Turning internally developed tools into public-facing products, using them to draw in like-minded people and serve our communities.
- Community Engagement: Building a stronger online community through social media and Discord, with live streams acting as interactive sessions for feedback and collaboration.
- Pride in Work: Ensuring that all studio members are proud of the work done, with efficient tools and processes in place for future projects.
Fast-as-fuck Prototyping Template
https://github.com/ejfox/nuxt-template-2023
- Nuxt (for front-end framework)
- VueUse (for everything, as much as possible)
- Nuxt UI (for UI components)
- TailwindCSS (for layout & styling)
- Supabase (for database & auth)
- Netlify (for deployment)
https://www.npmjs.com/package/room302-template
I created this set-up script that can be quickly run anywhere with npx room302-template
and provides a quick CLI walk-through to configure the project. There are a few quality-of-life helpers that allow us to move quicker, like automatically running yarn install
, opening the project up in VSCode, making sure the right version of node is running, and removing parts of the template that we aren't going to use.
Suite of user-facing premium tools from the studio
I want to use the momentum of our prototyping template, our livestreams, and the incredible ideas that come up in our Discord and in our weekly studio meetings. In order to do that I want to get in the habit of having a good idea, riding the momentum, and turning around production-ready MVPs of tools and products while the excitement is still fresh. I want to do this every single week, to put our reps in, and to learn and improve our templates and processes each time.
Coach Artie
When we hit our API limit early the other month, and there were a few weeks where he went offline, multiple people messaged me asking when he would come back. That strikes me as really positive feedback- I felt myself missing him too. I talk to ChatGPT nearly every day, but I find the multiplayer chat sessions with Artie in the studio Discord are much more fun and fruitful, and it's exciting to have complete control over his context window so we can continue to enrich our questions with memories, documentation, and our preferences around tools and approaches.
I am hoping that this year we can start having him hit different non-OpenAI models, but the results I have been getting from GPT-4 have been pretty impressive. I've built a suite of capabilities, which I explain in a brief manifest prepended to each message, and GPT-4 consistently uses the tools intuitively, even chaining multiple capabilities together to accomplish a goal.
I want to spend a lot more time focusing on this asynchronous long-running work in the next year. One of the things that keeps coming up is having Coach Artie do entire PRs. I feel we are close, but there are a few barriers; even 128k tokens in a context window is not enough for more complex code-bases or long-winded components, so even the most cutting-edge solutions like GitHub Copilot Chat or Cursor end up slicing your codebase into embeddings and grabbing the necessary pieces as needed. But they almost always lack a high-level understanding of the apps.
LatentScope
Over the summer, Ian and I did a quick sprint to create the MVP of a tool that would allow us to take any CSV and upload it to <latentscope.com> and have it automatically mapped in embedding space using OpenAI embeddings and UMAP to project it into an explorable 2D map. We also added some automated clustering, and even further than that, send samples of each cluster to GPT-4 to create automated cluster labels and descriptions, which when we tested it across a bunch of different types of data, was consistently accurate and insightful.
One problem we ran into was that the embedding and UMAP pipeline was written in Python, running on a Google Cloud VM, and very brittle. One of my goals is taking this Python pipeline and moving it to Node or Deno so it can be run on Netlify or Supabase edge functions or just in the browser. I've been experimenting with doing UMAP, TSNE, and clustering in the browser (or soon, on the edge) in this repo: https://github.com/room302studio/browser-tsne
ContextAlchemy
One thing I keep finding myself doing is tuning the ratios of various ingredients that I fill the context window with when talking to LLMs. For Coach Artie, for example, in addition to the Discord message, I also send along a history of previous messages from that user, previous memories formed from interactions with that user, and a random mix of other memories, as well as some other herbs and spices like a random Hexagram to inspire the response.
I find myself configuring this and also tweaking the ratio of the different elements and getting vastly different results. I want to build a tool that makes it easy to visualize and try out different ways to fill the context window from different sources, using different methods for searching, summarizing, truncating, and sequencing. I know a lot of other people are working on other tools like this, with very fancy acronyms and approaches. Many of them, unfortunately, are in Python. They also don't seem to account for the qualitative vibes that change with only subtle changes to the input. There needs to be a Bret Victor-ization of that experience, a very tight loop that lets you try lots of different approaches and see the results. I'm hoping to build on this tool and hopefully make it useful enough to be worth selling to users in some form.
One nice bonus is I can see the opportunity for some really cool cyberpunk visualizations as well.
IssueBuilder
In addition to building reusable templates and systems for creating production-ready prototypes of our ideas, one of the steps in the process that slows us down, that feels like a robot could help out with, is taking a document that roughly encompasses our idea for a product and then turning it into a bunch of discrete issues, that are a half-day to a day of development, with measurable and accomplishable goals and links to documentation and examples from previous studio projects.
I want to build a tool for us to use internally, first, but this is another idea that people have asked for access to, so I went ahead and bought <issuebuilder.com> and I want to figure out how to treat it as another one of the Studio's suite of products and tools that at the very least pays for its own server costs.
Weekly Livestreams
During the pandemic Ian and I had a lot of fun and made a ton of cool stuff. There is something special about working in public, collaborating with people, trying out new ideas, and making space to make things consistently at the same time every week.
I've been trying to get into the habit of weekly livestreams with some folks from the studio Wednesdays at 1PM.
Daily Dashboard + Personal AI Assistant
Over the year, as Coach Artie has developed into an AI assistant that helps all members of the studio, the approach I am taking there is slightly different from one I might take for a personal assistant.
My goal this year is to fork the current Coach Artie code base and start making some modifications (starting with the ability to DM, which I purposefully left out of Coach Artie, to encourage public conversation) that can give me an AI assistant with access to my calendar, to-do list, Apple Watch health data, and mood.
I think that the Personal AI Assistant goes hand-in-hand with an omnipresent dashboard visualization meant to sit in the background of daily life, on a TV or an iPad. This is a canvas through which the personal assistant can communicate things, introduce ideas, and I think the combination of the dashboard and chat-based assistant, working together, can provide a holistic system that can help me follow my daily rhythms, motivations, and interests while still keeping an eye for over-arching goals and projects and keep me on task. Maybe it is asking a lot for a robot to do all that, but I think it's worth a shot. I am thinking of calling him "Lil Fox".
🎨 Creative Ventures
Pottery
I want to learn to make espresso cups. I love espresso. I use an espresso cup every day. I want to throw an espresso cup, drink from it, think of ways to make it better, then throw another one. I want to be able to sit down at the wheel with a few balls of clay and emerge an hour later with a few espresso cups.
I am struggling quite a bit to accomplish this deceptively simple-sounding goal. In order to throw an espresso cup, there are a number of un-sexy skills which precede it that need to be mastered:
- Working up the motivation to go to the studio
- Properly wedging the clay
- Properly centering the clay
- Not using too much water
- Not getting too embarrassed as everyone in the studio watches you fail for two hours straight
- Properly compressing and smoothing the rim
- Properly removing the cup from the wheel
- Drying the cup the right amount before trimming
- Properly trimming the cup
- Creating and applying a maker's mark
- Glazing the cup
I'm still working on properly centering and not using too much water. It is hard to be bad at things, especially when there are other things that you are very good at that you could be doing instead. But like all things, once you actually get started and things click, even briefly, I remember that it's all worth it.
Generative Art
In previous years I was doing a lot more generative art. I think that during the pandemic, as I leaned into watercolors, it made more sense to me for art to be an analog thing, and for code to be a thing that people paid me to do. I am trying to fix that part of my brain a bit, still, and remember that I can and do write code purely for my own joy as well.
I want to return to some of the organic, perlin noise, topographic, flowy forms that I was making previously. I also want to experiment more with 3D engines, but for simple geometric high-contrast outputs.
I also want to experiment more with evolving, animated pieces that could be displayed in the background on TVs or in art spaces.
Hardware Hacking / Physical Installations
I really want to start manifesting code / art in the physical space. I don't have the words for it, but I really like hardware projects where "small" things have a big impact- like really bright LEDs that can turn a room from complete darkness to completely lit, or motors that can move an enormous cloth around, or little tappy motors distributed around a large room that are synchronized through MIDI.
Manifesting Digital Art in Physical Spaces
The primary objective is to transform coding and digital art into tangible, impactful experiences in physical environments. This involves creating installations where minimal hardware yields substantial environmental effects, such as light and motion, altering the perception and ambiance of spaces.
Order and Utilize a Diverse Range of Hardware Components
Over the course of the year, I'd like to acquire a variety of hardware components that offer a broad spectrum of possibilities for physical installations. This includes items like Raspberry Pi cases for compact computing, RGB LED matrices for dynamic visual displays, various motor drivers and servo motors for creating movement, and elements like vibrating mini motor discs and liquid pumps for interactive features.
A Year of Consistent Experimentation and Evolution
The vision for the year is to steadily experiment and evolve with these components. Starting with simpler projects, like integrating an Arduino program into a mechanical keyboard to mimic the tactile sensation of a typewriter, the plan is to gradually scale up to more complex installations. These projects aim to seamlessly blend technology into physical spaces, creating interactive and responsive art.
Creating High-Impact Installations with Minimal Hardware
In line with my prototyping principles, the focus will be on creating installations that dramatically alter environments with as little hardware as possible. The challenge lies in finding innovative ways to deploy technology in physical spaces, turning them into immersive and interactive experiences.
Integrating Art and Technology in New Ways
The overarching theme of the year is to push the boundaries of how art and technology can coexist and interact in physical installations. This involves exploring new methods of data sonification, projection mapping, and creating installations that not only display art but become an integral part of the space they occupy.
Venturing into 3D Printing and Data Visualization
I'd also like to to delve into 3D printing this year. I'd like to explore the realms of 3D data visualization and mapping. This adds a new dimension to my projects, allowing me to physically manifest complex data sets and conceptual ideas in tangible forms. The goal is to experiment with 3D printed models that can represent various data types, offering a unique and tactile way to interact with and understand data.
Beat-making Goals
- Reviving the Sacred Ritual: Reinstating the practice inspired by Rhythm Roulette – visiting a record store, selecting records at random, and then creating beats from these selections. This ritual, combining music discovery and creativity, is a cherished process I'm eager to bring back into my routine.
- Making 100 Beats: Aiming to create at least 100 new beats this year using my new Maschine+.
- Integrating Beats into Live Performances: Preparing to blend my beat-making seamlessly with DJ sets, focusing on remixes and live performances using the Maschine+. This involves building a library of beats and songs that can be dynamically used in live settings.
- Focus on Remixes of Popular Tracks: Concentrating on remixing popular songs, emphasizing polyrhythms, chill vibes, and transforming traditional rhythms into more hip-hop, jersey club, or footwork styles. This approach aims to put a unique spin on familiar tracks, making them more danceable and funky, and building a library of custom remixes of songs I like.
- Leveraging AI in Music Production: Exploring the use of AI to create acapellas or stems for sampling. This involves researching and experimenting with AI tools and methods that can enhance the creative process, offering new ways to isolate and manipulate musical elements.
Watercolors
Watercolors are definitely one of my more consistent artistic processes. Even when I was traveling on the motorcycle, I had a great little watercolor kit and I ended up making multiple pieces almost every single day all summer. I think it kept me sane. Except I kept painting the same exact forest / valley / river scenes over and over again, telling myself I was improving, but I don't know. I think doing the same thing over and over made me hyper-aware of where I was falling short, and I ended up exploring a lot of ideas like tonal perspective, warm / cool, etc while using a very similar composition and subject across all of my studies.
I just wanna get…. better… I want to find new compositions and ideas in these same scenes, to work from real life a lot more, to draw what I see instead of the icons/symbols in my head and the patterns I keep falling into – I feel like my rendering of trees and foliage could use a lot more work- I want to get a lot better at honestly representing different places in the Hudson Valley, accurate enough to be recognizable, or "respectful" to the people who love the thing that I am rendering (like their house, barn, or treasured forest spot.)
Watercolor Goals for 2024
- Explore New Compositions: Branch out from familiar scenes to find fresh compositions and ideas, especially in forest, valley, and river landscapes.
- Paint from Real Life: Increase the frequency of painting from real-life scenes, moving away from symbolic representations to more accurately depict the subjects.
- Improve Rendering Techniques: Focus on enhancing skills in rendering trees and foliage, aiming for a level of detail that is both realistic and respectful to the subjects, such as houses, barns, or cherished local spots.
- Daily Practice with Intention: Continue the daily watercolor routine post-coffee, emphasizing intentional practice and improvement, while allowing the process to unfold naturally throughout the day.
- Sketching Outdoors on Motorcycle Rides: Combine motorcycle rides with watercolor sketching, stopping at new and unexplored spots for brief sessions of drawing and painting.
- Documenting Artistic Journey: Develop a method to document these watercolor excursions and the progress made, both in terms of artistic skill and personal exploration of new locations.
Personal Documentation + YouTube
- I will celebrate my own successes by regularly creating YouTube videos to showcase my projects and experiments.
- I will aim to inspire others, emphasizing that making things is accessible and achievable.
- I will infuse a Mythbusters-like energy into my videos to share the excitement of my creative process and the understanding the world is editable.
- I plan to use my YouTube channel as a platform to connect with potential collaborators, build a supportive community, and engage with like-minded individuals to foster a sense of community.
🌱 Wellness & Personal Development
- Bodyweight Mastery: I want to make a new weekly habit of bodyweight exercises like push-ups, pull-ups, and squats to build strength.
- Balance & Flexibility: Improving my balance, flexibility and mobility is also high on my list, and I'm incorporating stretching exercises and Yoga into my daily routine and looking into more ways to practice my balance.
- Quick Reflexes: Alongside building physical strength, I'm dedicated to enhancing my mental agility. It's about training not only my strength but also the precision to deploy it thoughtfully. Developing quick reflexes isn't just about reacting fast; it's about making split-second decisions with precision and control. This mental aspect of fitness complements the physical, ensuring that I can harness my strength effectively in various situations.
Focusing on Discipline
In my journey as a self-taught artist, programmer, and investigative journalist, I've sometimes struggled with the discipline required to keep doing things that are initially hard or don't show immediate reward. Discipline serves as the bridge between intention and realization, transforming my artistic and personal pursuits into reality, and I want to do a better job of "trusting the process" and following the intentions that I set (like right now!)
More Hudson Valley Hikes
I aim to expand my repertoire of Hudson Valley hiking trails, venturing into both well-known routes and hidden gems that reveal the valley's hidden beauty. This goal aligns with my desire to use watercolors and sketches as a means of capturing the essence of the region. By hiking to new spots, I'll have the opportunity to witness all of the amazing things the place I grew up has to offer.
Moreover, these hikes serve as a bridge to overcoming social anxiety and embracing a more social life. As I explore these trails, I hope to gather wisdom from fellow nature enthusiasts, local residents, and kindred spirits who share a passion for the beauty of this region.
Get set up for international travel
- Renew passport
- Get set up with TSA Pre-Check and Clear
- Pick first international destination
Reduce Nicotine intake
My aim in addressing nicotine intake is a strategic one; I recognize that nicotine, when approached with intention and moderation, can offer cognitive nootropic benefits. But I need to shift the paradigm from habitual nicotine consumption to a more deliberate and focused approach.
By optimizing my use of nicotine as a nootropic, I intend to harness its potential for enhancing cognitive function and mental acuity. This transformation involves a conscious effort to detach from the grip of habitual consumption and instead, reduce cigarette consumption and employ nicotine as a tool for specific cognitive tasks. It's a journey towards a more mindful and purposeful relationship with nicotine, where its effects are leveraged with precision to support mental clarity and cognitive enhancements.
More Intentional Cannabis Use
Cannabis serves as a unique tool for introspection and creativity, and I approach it with the utmost respect. But I need to do a better job about being intentional about when and why I decide to consume it. By incorporating mindfulness into my cannabis consumption, I seek to gain a deeper understanding of its effects, promoting a harmonious balance between mind and body. The goal is to use cannabis as a tool for creative work and well-being while maintaining a clear and quantitative outlook on its impact on my daily life.
Goals for Global & Societal Impact
- Create and publish data visualization projects that highlight global issues to increase public awareness, aiming for at least two major releases this year.
- Produce educational content that demystifies technology's role in societal change, with a series of videos or blog posts released quarterly.
- Contribute to or launch an open-source project related to social justice or environmental sustainability, with regular commits every two months.
- Partner with a non-profit or activist group to leverage technology for social good, initiating or completing at least one collaboration by year-end.
- Implement diversity and inclusion policies within the studio and host a related workshop or panel discussion to foster a more inclusive community.
- Offer mentorship or training sessions to individuals from underrepresented groups in tech and art, conducting at least one session per quarter.
- Engage in public speaking opportunities to advocate for ethical technology use, participating in at least one event this year.
- Support local artists, especially those from marginalized communities, by commissioning or purchasing art, with a goal of acquiring new pieces each quarter.
- Launch an initiative to provide technology access or education to underserved communities, setting a measurable outreach goal to be achieved by year-end.
🚀 Goals For Next Year
- Implement a daily morning routine including meditation before coffee and screens for at least 30 days straight.
- Attend at least one art event or workshop per month and try to connect with one new person each time.
- Complete a full-body workout routine, including bodyweight exercises, at least once a week.
- Increase flexibility by practicing yoga or stretching for 15 minutes daily.
- Participate in one social or community event per month.
- Secure a stable client base by acquiring two new clients or projects each quarter.
- Submit work for an award like a Webby by the end of the third quarter.
- Launch one impactful project with societal benefits within the year.
- Develop and release one internal tool as a public-facing product by the second half of the year.
- Grow the studio community by achieving 500 new followers on the studio's social media platforms by mid-year.
- Conduct weekly team meetings to ensure all studio members are aligned and can express pride in their work.
- Streamline studio processes by adopting a new project management tool and training team members by the end of the first quarter.
- Reach 1,000 YouTube followers on the Personal YouTube Channel by the end of the year.
- Reach 1,000 YouTube followers on the Studio YouTube Channel by the end of the year.
- Maintain a consistent schedule of weekly livestreams, achieving a 40+ week streak.
- Complete a personal project or artwork once a month to foster creative growth.
- Develop and maintain a daily dashboard and personal AI assistant within the first six months.
- Make at least one espresso cup per week to improve pottery skills.
- Create and share one piece of generative art per month.
- Complete one hardware hacking project or physical installation each quarter.
- Produce and share 100 new beats by the end of the year, with at least two beats per week.
- Document and share the watercolor painting process bi-weekly, focusing on new techniques or subjects.
- Upload one YouTube video bi-weekly to document and celebrate personal and studio achievements.
- Hike a new trail in the Hudson Valley once a month and create a watercolor of the scene.
- Renew passport and set up TSA Pre-Check and Clear within the first three months.
- Reduce nicotine intake by cutting down usage by 50% within the first six months.
- Implement a schedule for intentional cannabis use, limiting consumption to weekends or specific creative sessions.
One-time Support
Every bit matters. Thank you!