Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

What are you looking for?


Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

What are you looking for?


Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

What are you looking for?


Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

What are you looking for?


Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Hey Hey Hey!

I'm Lyle Ophelio Lewis!

I am a Buffalo-based designer, photographer, and illustrator. I pride myself on being a creative who can adapt to whatever situation is thrown at him and having a little bit of love for anything and everything creative.

Continuing to learn new things is something that is extremely important to me, I like to be someone who knows a bit about everything. Research and learning are some of my favorite parts of the design process, there is always something interesting and new to learn!

These attributes have helped me become who I am today and allow me to extend my knowledge to others, to help and lift them up in their process as well.

I am currently studying at Radford University for an MFA in Design Thinking with my graduation set in May 2028. I am also a recent graduate of the Rochester Institute of Technology with a BFA in Graphic Design as well as minors in Advertising & Public Relations, Photography, and Packaging Science.

Want to see more of my work?

other project collaborations:

Dairy Duckz: Packaging, research, and concepting with Hannah Archer
Goop Theory: Research & concepting with Hannah Archer
Snouty: Photography for Nilda Castañeda Figueroa
Wench: Photography for Olivia Licameli

Did you know: I'm also a mascot?

check out my mascotting portfolio:




From My Adventures

Hover over the images for context!




Hello! How Are You?

Welcome to my Portfolio!


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }


RESUME & CV


Resume



CV

Resume Slide 1
Resume Slide 2
Resume Slide 3
(function() { const slider = document.querySelector('.lyle-resume-slider'); if (!slider) return; const track = slider.querySelector('.lyle-resume-slider__track'); const slides = slider.querySelectorAll('.lyle-resume-slider__slide'); const prev = slider.querySelector('.lyle-resume-slider__arrow--prev'); const next = slider.querySelector('.lyle-resume-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('lyle-resume-lightbox'); const lightboxImg = document.getElementById('lyle-resume-lightbox-img'); const closeBtn = lightbox.querySelector('.lyle-resume-lightbox__close'); const images = Array.from(document.querySelectorAll('[data-lightbox="resume"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); /* ⭐ LIGHTBOX NAVIGATION */ const lbPrev = lightbox.querySelector('.lyle-resume-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.lyle-resume-lightbox__arrow--next'); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();





MOOSH - Mushroom Fortified Oatmilk

Powerful Flavor, Major Mushroom Nutrients

The Project

The beverage market is heavily populated with new products from year to year. With this in mind, what can we do to create a unique and stand out product with impressive branding to support its debut to the public? Considering target audience, packaging, and overall product/company branding?

The Solution

MOOSH! An oat milk fortified with dehydrated mushrooms and supported by mascots called the MOOSH-rooms!With four kinds of adaptogenic mushrooms, MOOSH focuses on lowering stress and inflammation, boosting immune health, and easing fatigue. MOOSH delivers these benefits allergen free and on-the-go while also protecting our environment through the use of recycled and biodegradable materials.

First Steps


Research

Market research and why MOOSH stands out from its competitors!



Sketching + Ideation

first notes
first notes
logo ideation
logo ideation
logo ideation...
logo ideation...
even more logos!
even more logos!
packaging & mascots
packaging & mascots
king trumpet mascot
king trumpet mascot
cordyceps & maitake designs
cordyceps & maitake designs
k. trumpet and puffball
k. trumpet and puffball
(function() { const slider = document.querySelector('.moosh-slider'); if (!slider) return; const track = slider.querySelector('.moosh-slider__track'); const slides = slider.querySelectorAll('.moosh-slider__slide'); const prev = slider.querySelector('.moosh-slider__arrow--prev'); const next = slider.querySelector('.moosh-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('moosh-lightbox'); const lightboxImg = document.getElementById('moosh-lightbox-img'); const lightboxCaption = document.getElementById('moosh-lightbox-caption'); const closeBtn = lightbox.querySelector('.moosh-lightbox__close'); const lightboxPrev = lightbox.querySelector('.moosh-lightbox__arrow--prev'); const lightboxNext = lightbox.querySelector('.moosh-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="moosh"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; /* Update caption */ lightboxCaption.textContent = img.dataset.caption || ""; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); /* Lightbox navigation */ lightboxPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lightboxNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

tARGET aUDIENCE

Who will drink MOOSH?




Product Refinement


Branding. . .

MOOSH's branding centers all around our unique selling point (USP), our mushrooms! In an effort to support our community MOOSH focuses on accessibility, individuality, sustainability, and quality through our brand and products.Our typefaces and logo reflect how MOOSH strives to be fun and welcoming to its customers. Our brand colors are a nod to the mushrooms we rely on and the flavor colors are treated in a way to make them appear more natural.The four mascots, the MOOSH-rooms represent each of the four mushrooms present in our fortified oat beverages.









. . .Into Packaging

Our dedication to sustainability continues with our packaging. The cartons, made from paperboard, come with biodegradable straws and PLA plastic film to cover them.Each flavor follows similar guides for consistency and highlights a different one of our mascots to draw in consumers.


Extra Product Information



Photography


Preparation + Outtakes

Various images that either did not make it into final deliverables or were repurposed into other graphics.



Final Compositions

These final photographs go on to be utilized in various marketing applications (model: morgan singleton)


Marketing


Ideation



Physical Media

MOOSH should be “fruiting” up everywhere! Billboards that our target audience will see on their commute to get them thinking about our product. Bus stop advertisements to really hone in on the college age audience as well as sport stadium ads to push MOOSH everywhere. Fun poster-like magazine ads will be used to entice readers to keep the ad and purchase MOOSH.



Digital Media

Our audience is always in motion and so is MOOSH! By appearing in places of public transport like trains, MOOSH will reach its audience and then some with its fun, poppy graphics all for commuters to see.The target audience for MOOSH has a large presence on social media. Targeting platforms like Instagram, MOOSH will be pushed to the circles of its target audience.





public transportation motion advertisement






Takeaways

MOOSH pushed me way out of my comfort zone as one of my first projects where I had the time to truly delve into it and think about as many aspects as I could. From creating the branding itself to physically assembling my cartons for the photoshoot, this project stretched all of my creative muscles to make them stronger!


FIN.




MATKA's Vegan Polska - Vegan, Polish-Focused Restaurant and Brand

Eat Local, Eat Vegan, Eat MATKA's!

The Project

Buffalo, New York is known for its connections to Polish-American culture and traditions that go beck decades. Of newer traditions is the ever growing community of vegan residents, being a vegan in Buffalo does not come easy through the lack of options when compared to surrounding cities. What can we do to promote Buffalo Polish culture as well as support local vegans?

The Solution

Matka’s! A vegan restaurant that has a primary focus on traditional Polish cuisine with a vegan twist, located centrally within Buffalo, New York. Matka’s seeks to deliver new and  traditional foods as vegan for those who cannot have the meals in traditional ways.


Research + Ideation


Research + First Steps


Matka's — Why?


In Polish, Matka can be translated as Mother or Mama in English. My Mom has always confided to me how little food accessibility there is in Buffalo for someone who is Vegan. I have also known for my entire life that my Mom loves both cooking and baking.So as a nod to her and her creativity in regards to food, based on her recipes and food, Matka's is built upon her experiences and her talents as a Vegan Polish-American.


Sketching + Process

logo sketches
logo sketches
continued experimentation
continued experimentation
logo styles
logo styles
even more experimentation...
even more experimentation...
iconography experiments
iconography experiments
type and form studies
type and form studies
letterform and color refinement
letterform and color refinement
icons and tag refinements
icons and tag refinements
(function() { const slider = document.querySelector('.matkas-slider'); if (!slider) return; const track = slider.querySelector('.matkas-slider__track'); const slides = slider.querySelectorAll('.matkas-slider__slide'); const prev = slider.querySelector('.matkas-slider__arrow--prev'); const next = slider.querySelector('.matkas-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('matkas-lightbox'); const lightboxImg = document.getElementById('matkas-lightbox-img'); const lightboxCaption = document.getElementById('matkas-lightbox-caption'); const closeBtn = lightbox.querySelector('.matkas-lightbox__close'); const lightboxPrev = lightbox.querySelector('.matkas-lightbox__arrow--prev'); const lightboxNext = lightbox.querySelector('.matkas-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="matkas"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; /* Update caption */ lightboxCaption.textContent = img.dataset.caption || ""; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); /* Lightbox navigation */ lightboxPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lightboxNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

Final Logotype + Marks


Main Extended Logo

Primary Logotype

Logomark / Social Media Icon


Colors + Type

Lyle O. Leiws LOL! logo bouncing animation

Matka's Red

Pantone 187C
C0/M56/Y52/K40
R154/G11/B21
HEX #9A0b15

Lyle O. Leiws LOL! logo bouncing animation

Polka Red

Pantone 188C
C0/M38/Y36/K56
R112/G14/B21
HEX #700E1S


To nod to Matka's roots, red is the primary color used in the branding, named aptly, Polka Red reflects the red used in historical Poland flags.Matka's Red on the other hand comes directly from the brand's namesake, this red is the same hex code that my mother has painted her kitchen, borrowed straight from the paint sample card.


Marketing


Ideation


Packaging


Storefront

Social Media

matka's social media page + posts


Social Media Posts


In-Store Advertising





Takeaways

Matka's was my first true dive into both branding and letterform creation. This project let me express my heritage in a way I never quite had before, allowing me to intertwine it into my designs and illustrations for this one-of-a-kind restaurant and brand.I learned a lot about typography and just how much work it takes into refining letterforms to create the perfect combination.


FIN.




Psychology Today - Editorial Spreads focusing on political misinformation on Wolves in the USA

Wolves are NOT  a Clear and Present Danger

The Project

Psychology Today is a popular site and magazine that covers an immense amount of topics. How can we take a lesser known article and translate that into a captivating and intriguing, designed editorial piece with multiple spreads?

The Solution

Wolves are Not a Clear and Present Danger, an article turned into an editorial design that focuses on the hybrid use of photography, traditional materials and digital materials to push the warnings of political misinformation against wolves in the United States.

Photography Requirements

This project forbid the use of stock imagery, all images, graphic or otherwise, needed to either come from myself, or with permission from the photographer. The wolves and wolf-dogs featured in these spreads come from the filming sites of the Game of Thrones series with the photographs taken by their trainer, Emily Roach.


About the Article

Wolves, political stupidity, and fear-mongering: Wolves are a clear and present danger, renamed "Wolves are Not a Clear and Present Danger" for the design, is a 2011 serious and informative article based around US politics and how politicians use misinformation to push anti-wolf legislation.The author, Marc Bekoff, is professor emeritus of Ecology and Evolutionary Biology at the University of Colorado, Boulder and has been active in the field of animal behavior for decades.Under the Psychology Today media kit the article can also be classified as a “rant”. Other articles on cover were selected within the same date of this main article for consistency.

Ideation + Experimentation


Sketches, Research, Markmaking


Typeface Decisions

Final Spreads


Full Spreads


Final Flipbook


Flipbook with ZoomScroll to Top Buttonarrow_back_ios

WELCOME!

Front CoverFront 1
Back 1Back of Front Cover
Front 2
Back 2
Front 3
Back 3
Front 4Alt Front 4 (Wrap)
Back 4Alt Back 4 (Wrap)



Takeaways

As my first dive into editorial work, this project showed me how much I love it and how much I love typography. I have always been an avid wolf lover and the chance to integrate that into this project allowed me to make it a bit more personal, including working around the imagery restraints and collecting information and ideas to use within the article spreads.


FIN.




Craft For Care - Non Profit Overhaul and Rebrand

Building New Communities, Block by Block

The Project

Non-profits are typically at a large disadvantage in terms of graphics and branding due to lack of funding for them. How can we revamp a chosen non-profit and give them a full branding overhaul to better serve their mission and boost their organization?

The Solution

The non-profit Block by Block was chosen to undergo an entire brand change, including their name to help the organization better stand out from similarly named companies and become more visually distinct from other organizations to draw more interest.

The Organization

Block by Block focuses on using the video game Minecraft as an immersive and participatory design tool for urban designing and placemaking in disadvantaged neighborhoods. Block by Block is a unique collaboration between the UN and Mojang Studios, the developers of Minecraft.

Behind the Rebrand


Sketches + Process — Logos


Final Logo + Variations

The first thing viewers often see in a brand is the logo. It needs to stand out and be memorable. Craft for Care's logo borrows directly from its main tool, Minecraft, being inspired by the blocks that make up the game.The logo has three main variations, the primary block lettermark, the horizontal lettermark, and the block mark which is also used in their social media icons.


Typography

The main typeface for all of CfC's copy, headings, subheadings, etc. is Gellix. Gellix is borrowed from the parent company Mojang to tie back to CfC's roots.Gellix is perfectly geometric and provides a wonderful array of letterforms and weights that pair perfectly with CfC's graphics.


Colors


Primary + Shades

Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation

Secondary + Shades

Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation

Accents/Special Use

Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation

Brand Imagery


Graphic Icons

For graphics, I created a system for CfC to be able to take and use to create icons as needed for their organization. Each icon features an 4x4 grid with a 'gradient' in the background while the main icon utilizes an 8x8 square grid to create the graphics.In the 8x8 grid the outer border is never used to keep the clarity of the imagery being created in the square.







Photography + Video

The video and photography for Craft for Care focuses on bright and uplifting imagery, the photographs used should not be dark or moody, that doesn't represent the mission of CfC.These photographs and videos were taken over the span of three shoots from the help of ten different peers and students as models and assistants.


'getting ready' CfC teaser video

'presenting' CfC teaser video

Sketches + Process — Imagery


marketing the rebrand


Brand Launch Event

To reintroduce Block by Block as Craft for Care to the world, CfC will feature one of their workshop event with new branding and social media opportunities to bring awareness to the cause and community chosen for the event.


Event Assets



photo opportunity backdrop


directional a-frames

area table tents


directional barricades

Event Invite

To truly highlight the importance of the event, Craft for Care will send out personal invitations to the event for prominent members and
supporters of the organization, like Mojang's creative director Jens (Jeb) Bergensten!

Sketches + Process — Launch Event & Further Marketing


digital marketing

Social Media

Instagram is one of Craft for Care's most used platforms and that continues with the rebrand, examples of all kinds of posts, except for reels, are present to help promote the organization.

Website

Aside from Instagram, Craft for Care's website is the most important resource and touchpoint for the organization.
Donations, communication, news, and so much more all come from the website which also received a revamp to create a more unique page for users to experience and explore.

Special Participant Gift

Every participant, unless they
already own one, is given a Mojang (Minecraft) Account to keep and play on, participants of a CfC workshop will recieve this special cape item to wear on their characters whenever they want.


physical marketing

Billboard

Direct Mail Brochure


Inside Panels


Outside Panels


Business Card

Craft for Care's block mark logo translates well into many things, especially business cards. This business card servers to educate the receive not only on the information of the specific person giving it to them but also on a brief description of what it is exactly that Craft for Care does for their communities that they work with.

Advertising


Craft for Care's dynamic tagline "Building _____ Block by Block" calls back to the original name and gives it new life as a tagline that is adaptable to the many things that CfC strives for their projects to impact and create.These advertisements shown above were created to show off the work CfC does and the people that make the work happen to ideally get them to visit the Craft for Care site and hopefully support the organization.


Volunteer Wear

To help inspire others to give back as well as make it easier for participants to receive assistants, volunteers receive a branded work vest and construction hat to be worn throughout the entire workshop event!

CfC construction hat mockup

cfc volunteer vest mockup





Takeaways

This project truly tested all aspects of my design related talents. Being able to cover something as dear to me as Minecraft while also tackling a complete brand overhaul for an organization making a difference in the world was eye-opening for me creatively. This project taught me a lot about the complete branding process way beyond what is traditionally thought as branding and bringing that into event design and all the small things that an organization like this one may need. We can't underestimate how impactful it can be for a non-profit to have access to a good brand to truly make their work shine and bring them visibility.


FIN.




Tear Jerky / Full EP
Sparky Deathcap / R N Taylor

Tear Jerky - Cassette Insert and Album Cover Redesign

Sparky Deathcap / RN Taylor

The Project

Not all album art holds up their connection to their albums' songs. This becomes an even more tricky statement when the fact remains that not all listeners get the same feel or 'vibe' from the songs within the album. When a listener doesn't see the connection between the art of an album and the feel of their songs, what can we do to fix that?

The Solution

Well, we make one for ourselves! Sparky Deathcap's (RN Taylor) album art had this problem for me and I sought to fix it, make it feel closer to the songs I was hearing (available to listen to in the player on the left). To flex both my analog and digital skills and as a lover of physical music media, I chose to create my own album art and cassette insert for the album.

the Cover


MarqueeScroll to Top Buttonarrow_back_ios

WELCOME!

SOMBER  ESCAPE  DRIFTING  SOMBER  ESCAPE  DRIFTING  SOMBER  ESCAPE  DRIFTING  
SOMBER  ESCAPE  DRIFTING  SOMBER  ESCAPE  DRIFTING  SOMBER  ESCAPE  DRIFTING  

I wanted to represent the emotions and feelings I received while listening to this EP better than the original art had accomplished.I still wanted nods to the original piece so I decided to incorporate the use of red and white, circle motifs and the cap-like icon which I turned into a logo for the project. I used acrylic paint to get a grunge feeling with a rough and textured atmosphere. I edited the colors of the painting in-post to achieve the look of older film.

Original

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

my Design

The album cover was redesigned before the j-card so I could get a feel for the entire spread and keep that feeling consistent. I also wanted to be able to showcase the whole painting in its full form. The EP makes me think of a long, snowy, solo-expedition through the woodlands to find one's true self, a truly retrospective experience with hints of wanderlust.

Sketches + Process — Cover


J-Card Insert

Sketches + Process — Cassette Insert


Outside

The outside of the cassette utilizes my painting which was edited to fit the format of the J-card for the main body and fold-out pieces. I positioned the traveler in a way so that the viewer saw them when the card was folded and when folded out so the viewer could see the journey ahead.The right two panels are for the side and small back of the cassette which contain the artist and tape information shown in the typeface Gadugi. I calculated the times of the songs so they would fit as evenly as they could on a real tape with two sides.


Inside

Serving as a contrast to the green-tinted, realist outside spread, when the viewer opens the card they reveal a vibrant, bright inner spread. The red and white while serving as a contrast to the outside also call back to the original cover along with the white border and circles. The songs of both side a and b are displayed with their durations in the gadugi typeface.The icons displayed on this spread take inspiration from stickers and scrapbooking layouts with the idea of travel and the outdoors for the subject matter. Some of the stickers include momento-mori subjects which are a nod to the name Deathcap.


Icons + Logos

New Logos

This project required me to tweak the icon the original had. I wanted to lean into the name Sparky Deathcap so I created a more bottle cap-esque icon derived from the motif on the original album cover and a playful skull that tied into the name. The letterforms are inspired from the original handwriting on the original album cover.I also needed to create a simple logo that would represent RN Taylor, the artist's brand name at the time of the EP release (now R-Corp).

Sketches + Process — Logos + Icons/Illustrations


Final Icons/Illustrations

tent
tent
campfire
campfire
skull
skull
marshmallow
marshmallow
cloud
cloud
ticket
ticket
backpack
backpack
x (marks the spot)
x (marks the spot)
directional sign single
directional sign single
paper airplane
paper airplane
location
location
mountains
mountains
flag
flag
matchstick
matchstick
directional sign double
directional sign double
(function() { const slider = document.querySelector('.tearjerky-slider'); if (!slider) return; const track = slider.querySelector('.tearjerky-slider__track'); const slides = slider.querySelectorAll('.tearjerky-slider__slide'); const prev = slider.querySelector('.tearjerky-slider__arrow--prev'); const next = slider.querySelector('.tearjerky-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('tearjerky-lightbox'); const lightboxImg = document.getElementById('tearjerky-lightbox-img'); const lightboxCaption = document.getElementById('tearjerky-lightbox-caption'); const closeBtn = lightbox.querySelector('.tearjerky-lightbox__close'); const lightboxPrev = lightbox.querySelector('.tearjerky-lightbox__arrow--prev'); const lightboxNext = lightbox.querySelector('.tearjerky-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="tearjerky"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; /* Update caption */ lightboxCaption.textContent = img.dataset.caption || ""; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); /* Lightbox navigation */ lightboxPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lightboxNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();




Takeaways

This project allowed me to explore print media at a much smaller scale with my favorite form of music, cassettes. As a collector it was a joy to create my own special cassette artwork that connected fully and truly back to the way I feel about the songs in the album. I was also able to stretch my creative muscles in the analog area to create the painting for the album cover and insert!


FIN.




Del Rio Festival - 2024 Eclipse Festival Event

Illuminating Del Rio's Culture and Celebrating the solar eclipse

The Project

On April 8, 2024, North America experienced one of three different types of eclipses, the most anticipated, a Total Solar Eclipse. These exact conditions for the USA, Mexico, and Canada will not occur again until August 23, 2044. For such an important event, many cities held special events. How can we create one of these events that highlights the natural phenomenon and intertwines itself with the culture of the city?

The Solution

An eclipse festival in the border city of Del Rio, Texas! Located in Texas, a mile from the Rio Grande and the Mexican town of Ciudad Acuña, Del Rio is home to Lake Amistad, contains the Val Verde Winery, as well as unique arts and culture.This eclipse campaign strives to do three main things, highlight Del Rio's unique Mexican/American culture, foster community, and attract new visitors to the town for the event.

The Roles

Creating the entire event and branding for it was not a one person project. My fellow designer Max Stromfeld worked with me on this project to make it a success!The two of us created and ideated the ideas for the event itself together while he tackled the website design and I took on a majority of the branding and all the marketing/merchandising materials for the event.

The Event


What?

Along with the solar eclipse itself, Del Rio will be hosting several events for families visiting and who live in Del Rio.- Kayaking on Lake Amistad
- Local Vendor Artist Alley
- Event Exclusive Merch Tent
- Stage Events Highlighting Local Musicians, Dances, and Scientists
- Community Mural Painting Sponsored by Casa de la Cultra
- Wine and Food from the Val Verde Winery
- Yard Games and Del Rio Parks

Why?

As stated, this type of solar eclipse will not happen again until 2044, this event servers to highlight this anticipated natural phenomenon and the city of Del Rio. As a smaller border city, Del Rio has a unique blend of Mexican and American culture along with many areas in and surrounding for tourists to explore.

Where?

Most of the main festivities will take place in Brown Plaza, the heart of Del Rio and where the town started. This area is important to the city so it is only natural that an event highlighting it take place within the plaza.

Branding

Primary Colors

Lyle O. Leiws LOL! logo bouncing animation

Moon Blue

Pantone 5255C
C91/M86/Y49/K65
R18/G19/B45
HEX #12132D

Lyle O. Leiws LOL! logo bouncing animation

Sol Yellow

Pantone 7409C
C3/M36/Y98/K0
R244/G171/B33
HEX #F4AB21


Typefaces

Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation

Main Logo + Variations

The primary mark for the festival is inspired by both the eclipse itself and Mexican textile work. The mark utilizes geometric motifs largely present in those textile works, giving the impression of an eclipse as well as a flower which also holds signifigance in the textiles it is inspired by.Our primary copy (TXC Pearl) is designed by Texas-raised designer Andy Anzolitto. It is inspired by type in Texas Hill Country which is only 2 hours from Del Rio!"TXC Pearl is a playful expression of the narrative of a place, carrying forward into the future the stories of the past" -Anzoltto

Variations


Logo Sketches + Ideation



Marketing

The Website – Max Stromfeld


The website is the landing for all things about the Del Rio festival, from tickets to itineraries and FAQ. We wanted to highlight the events happening at the festival and how they connect to Del Rio.


home page website tour


activities page website tour





Memorable/Event Poster

This poster servers as a gift for all visitors as a memory for all of them to take home with them. This poster highlights the time, date, and location of this event with an illustration I created using illustrator and references of Brown Plaza where the event is taking place.

Merchandise

A free event with paid experiences

The eclipse event for Del Rio is a free event, however, if participants register beforehand they get access to a branded ticket in their preferred language that they can then use as a ticket to enter into some of the raffles happening during the event.While the event is free, many of the vendors will have goods and/or services for sale/purchase like the artists and Val Verde's goods.All visitors receive a free souvenir poster, eclipse glasses, and branded bottle of mini sunscreen to stay safe during the eclipse.

Merchandise Sketches + Ideation

eclipse glasses & buttons
eclipse glasses & buttons
tickets & water bottle lables
tickets & water bottle lables
t-shirts & wristbands
t-shirts & wristbands
sunscreen & stickers
sunscreen & stickers
collectable posters
collectable posters
pressed pennies
pressed pennies
(function() { const slider = document.querySelector('.delrio-slider'); if (!slider) return; const track = slider.querySelector('.delrio-slider__track'); const slides = slider.querySelectorAll('.delrio-slider__slide'); const prev = slider.querySelector('.delrio-slider__arrow--prev'); const next = slider.querySelector('.delrio-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('delrio-lightbox'); const lightboxImg = document.getElementById('delrio-lightbox-img'); const lightboxCaption = document.getElementById('delrio-lightbox-caption'); const closeBtn = lightbox.querySelector('.delrio-lightbox__close'); const lightboxPrev = lightbox.querySelector('.delrio-lightbox__arrow--prev'); const lightboxNext = lightbox.querySelector('.delrio-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="delrio"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; /* Update caption */ lightboxCaption.textContent = img.dataset.caption || ""; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); /* Lightbox navigation */ lightboxPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lightboxNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

Mockups + Final Merchandise




Takeaways

This project allowed me to really flex my research muscles, the most important factor of this project for Max and I was figuring out how to properly represent a culture and town we were in no way familiar with prior to the project. While challenging, it was one of the most exciting things about this project, figuring out how to reflect culture and experiences of this town into the event was a puzzle we lovingly put together throughout the entire process.


FIN.




The Hunt - Portraiture series

A narrative on the story of a killer and his victim

The Assignment

Portraiture has many forms. Utilizing this medium, how can we create a compelling series of photographs that also establishes a narrative storyline throughout it? How can we utilize a photography series as a form of storytelling?

The Solution

Just in time for the Halloween season, this series began to take form. With help from New York based SFX artist Jay Haefner, I shot a number of self portraits and portraits of designer, and friend, Liz Carro. The series focuses on two POVs one of the killer/villain and the other, his victim. The presentation of photographs focuses on intertwining the two POVs into parallel narratives.

SHOOT LOGISTICS + Preparation

Sketches + presentation


Final Series

Final Compositions


Series Presentation

series as it would be presented in a gallery (click to enlarge)




Takeaways

This was my first project to take on doing self-portraits, along with that it was also one of my firsts working with a model and makeup artist. This series had a lot of firsts for me, but, I learned a lot from it. Particularly this series encouraged me to think ahead and beyond just the photographs I was taking, to think about how and where those photographs would be seen and in what contexts.


FIN.




Krupnik Kraze - Studio Product Photography

A small exploration of polish culture through creative media

The Assignment

How can we create a beautiful interpretation of a product in order to entice the viewer to look at the entire line of offerings? Something that could be used as a cover of a catalogue, part of a direct mail/print campaign, or part of online marketing efforts. How can we create a photograph persuade the viewer to explore the product while also interpreting the product evocatively?

The Solution

As someone of Polish heritage, I wanted to approach this assignment with something unique to the culture, a bottle of Polish honey mead called Krupnik. Integrating culture and product photography through this subject was my main focus throughout the shoot for both the still and motion media.

SHOOT LOGISTICS + Preparation

Sketches + Diagrams

Pre-shoot compositional sketches and lighting layout of final image



Outtakes

Notable outtakes that show progression and learning towards the final image



Final Series


Final Compositions

The final photographs and video to be used in potential promotional materials

condensation motion video




Takeaways

This project, while focusing on the challenge on intertwining product/advertising photography and culture, also introduced me to new materials, glass and liquid. I had to learn and research the proper ways of lighting glass subjects, how to avoid distracting reflections and control those results. I was further limited with my access to only black plexiglass as I hadn't realized my initial idea needed the white one I shared with a fellow classmate. Overall though, I was able to circumvent these challenges and learn a lot of new information regarding photographing products (things like fake condensation) and highly-reflective surfaces


FIN.




Meet Meat - Food Product Photography

A series focusing on a chuck steak against a pure background

The Assignment

How can we create a photographic series that features different lighting techniques while all focusing on an strong visual content, and a evenly lit background with a subject of a worthy challenge? Advertising photography focuses on substantial inquiries into lighting control, as well as industry standards in software, hardware, and workflow; all the while varying drastically in subject matter. Photographers are often asked "The client needs this; can you do it?" and we need to be able to say "yes."

The Solution

I chose to photograph a slab of meat, specifically, a chuck steak.
When first presented with this project, I immediately got a vision of the striking red color of a raw piece of beef against a pristine white background.
As I went on in the brainstorming process thinking of different items, a pinecone, a children’s toy, I was still drawn back to the raw beef. The relationship of the meat’s color to its surrounding was the main focus for the series aside from the evenly-lit background.

SHOOT LOGISTICS + Preparation

Lighting Diagrams

Post-shoot lighting layouts of the final images



Outtakes

Notable outtakes that show progression and learning towards the final images


Final Series

Final Compositions





Takeaways

My first true dive into advertising photography and genuine studio work. This project challenged me in many ways, lighting a 100% white background, working with real food, and making this ordinary piece of steak, extraordinary. This series was immensely fun to work with, it definitely helped push me further into the world of advertising photography and all the problems to solve utilizing photography as the medium.


FIN.




Villain Love - Editorial Photography Exploration

Why Villains still fascinate us - psychology today

The Assignment

Editorial photography is often where many well-known advertising photographers have their start, what is the process behind editorial photography and how does one create a photographic series that can encapsulate an entire written article? Utilizing a Psychology Today article, what can we do to translate the written word into striking and powerful visuals?

The Solution

Villain Love is a series of photographs focusing on their eventual use within an editorial spread. Similarly to my other editorial project, the series focuses on the hybrid use of photography and graphic design, this time highlighting the photography side of the project. The series explores the romanticization of villains and criminals in both fictional and non-fictional contexts.

About the Article

Why Villains Still Fascinate Us is a 2024 law and crime focused article. The writing is based around why humans empathize with guilty criminals as well as how the interest and obsession with villains is explained by psychological, social, and media factors.Author Nuala G. Walsh is a leading authority on behavioral science, Walsh is currently an Adjunct Professor at Trinity College Dublin's School of Medicine, teaching the subject.


SHOOT LOGISTICS + Preparation

Sketches + Diagrams


Project Inspiration board

Inspiration collected that helped influence the series

vertical image


horizontal image


motion video


Outtakes

Notable outtakes that show progression and learning towards the final images. Models: Emmitt White (villain) and Grace Geisler (fan)


Final Series

Final Compositions

!! flash warning for video !!

motion video for digital article


designed editorial spreads



Article Flipbook

/* --- Flipbook #87 JS (fully isolated) --- */ const nextBtn87 = document.getElementById("next-btn-87"); const prevBtn87 = document.getElementById("prev-btn-87"); const bookHolder87 = document.getElementById("book-holder-87"); const papers87 = Array.from(document.querySelectorAll(".flipbook87 .paper87")); const numPages87 = papers87.length; let current87 = 1; const max87 = numPages87 + 1; function setZ87() { papers87.forEach((paper, i) => { const z = numPages87 - i; paper.dataset.index = z; paper.style.zIndex = z; }); } setZ87(); function nextPage87() { if (current87 < max87) { const paper = papers87[current87 - 1]; paper.classList.add("flipped"); setTimeout(() => paper.style.zIndex = 0, 1000); if (current87 === 1) { bookHolder87.classList.remove("closed-start"); bookHolder87.classList.add("open"); } current87++; if (current87 === max87) { bookHolder87.classList.remove("open"); bookHolder87.classList.add("closed-end"); } } else { bookHolder87.classList.add("flipping-reverse"); papers87.forEach(p => p.classList.remove("flipped")); setZ87(); bookHolder87.classList.remove("closed-end"); bookHolder87.classList.add("closed-start"); current87 = 1; setTimeout(() => bookHolder87.classList.remove("flipping-reverse"), 1000); } } function prevPage87() { if (current87 > 1) { current87--; const paper = papers87[current87 - 1]; paper.classList.remove("flipped"); paper.style.zIndex = paper.dataset.index; if (current87 === 1) { bookHolder87.classList.remove("open", "closed-end"); bookHolder87.classList.add("closed-start"); } else if (current87 === max87 - 1) { bookHolder87.classList.remove("closed-end"); bookHolder87.classList.add("open"); } } else { bookHolder87.classList.add("flipping-reverse"); papers87.forEach(p => { p.classList.add("flipped"); p.style.zIndex = 0; }); bookHolder87.classList.remove("closed-start"); bookHolder87.classList.add("closed-end"); current87 = max87; setTimeout(() => bookHolder87.classList.remove("flipping-reverse"), 1000); } } nextBtn87.addEventListener("click", nextPage87); prevBtn87.addEventListener("click", prevPage87); /* --- Lightbox #87 --- */ const lightbox87 = document.getElementById("lightbox-87"); const lightboxImg87 = lightbox87.querySelector("img"); document.querySelectorAll(".flipbook87 img").forEach(img => { img.addEventListener("click", () => { lightboxImg87.src = img.src; lightbox87.style.display = "flex"; }); }); lightbox87.addEventListener("click", () => { lightbox87.style.display = "none"; });




Takeaways

This set of photos really tested my skills, not only as a photographer, but generally, overall, as a creative. The shoots with my models could not have been more challenging between lack of access to equipment and other technical issues. Despite all of that, with some perseverance and a whole lot of gaffers tape, I was able to adapt with what I had and complete this project as I needed.


FIN.




Me Music - pastiche photo Series

A collection of photographs inspired by various music albums

The Assignment

As a way of analyzing and dissecting the photographic image, actively contemplating the construction of a meaningful photograph, how can we identify key elements and construct scenes with new materials and lights so that the photographs we make are compositionally similar to the originals, within the new contexts of our creation?

The Solution

An eight photograph series focused on replicating the compositions of various music albums, ranging from indie-rock band Duster, to artists like Haley Heynderickx. This series is unique in its mission to replicate existing compositions into to something similar, but new. The process of taking these photographs was much more lax than I am used to as I only had an idea of where possible locations could be. A lot of this series meant exploring my locations to find the best shots and environments for them.


Final Series

Final Compositions

Each final image (right ) is paired with its original cover (left) for reference, all final images were taken between Buffalo and Rochester, New York as I explored in search of compositions.

reference album

FINAL image

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Forward Arrow IconScroll to Top Buttonarrow_back_ios

WELCOME!

arrow_forward

Series Presentation

series as it would be presented in a gallery (click to enlarge)




Takeaways

If I were to list one thing that creating this series taught me, it would be the act of active observation. All of the locations, subjects, etc. in my final images come somewhere I had either visited all my life or see every day. Whether that be downtown buffalo or a seated dining area at RIT. This project actively taught me that if you pay attention, compositions are everywhere and if you are looking to do so, you can make the familiar into something new entirely. The project also gave me the chance to make some positive creative decisions that differed from the original covers.


FIN.




Environment V. Studio - Exploring Portraiture

portraiture series focusing on the experiences of environmental and studio work

The Assignment

Portraiture can take on many forms, especially when you play with the definition of what a portrait actually entails. This assignment focused on the experience of creating series in the field and in the studio. A large percentage of portrait photographs for publication are shot on location, with intents to inform the viewer of the context of the subject. Studio photography allows for a more clean focus on the subject but, lighting/wardrobe/sets/props need to be varied in a series so that nothing in the set is redundant

The Solution

Two series, three subjects! The environmental portraits focus on my model's charming personality combined with her love of violin. The studio portraits take less of a personal approach and lean more into the fictional storytelling aspects of a portrait series. My studio portraits takes inspiration from classic vampire stories and shows and the relationship of the main protagonist and vampire. This series focuses on the story over the subjects of the portraits while still aiming to give the subjects options to choose from regarding their pictures.

SHOOT LOGISTICS + Preparation

Environment Sketches + Diagrams



Environment Behind the scenes

various behind the scenes and in-progress shoot photographs, courtesy of Liz Carro



Environment Outtakes

Notable outtakes that show progression and learning towards the final images. Model: Hannah Nettikadan



Studio Sketches + Diagrams


Studio Inspiration Board

Inspiration collected that helped influence the series

Studio Outtakes

Notable outtakes that show progression and learning towards the final images. Models: Tommy Lorio (vampire) and Sofia Santiago (girl)



Final Series

Environment Final Compositions



motion video of model


Environment Series Presentation

series as it would be presented in a gallery (click to enlarge)



Studio Final Compositions


Studio Series Presentation

series as it would be presented in a gallery (click to enlarge)




Takeaways

These projects were my first truly in-depth dives into professional portraiture photography, utilizing both in-studio and portable strobe lighting. Particularly it was my introduction to portable strobes and learning how to properly travel with them was a big part of the process, nerve-wracking to carry around such expensive equipment but a necessary thing to learn. I got really into the process, basically rolling around on the ground to get my environmental portraits and experimenting with different lighting setups and various modifiers to play with those setups in the studio.


FIN.


MISC Design

Collections of my various other designs


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }


Short-term / small projects

miscellaneous posters

As is the nature of most designers, I have created numerous posters across my time as a creative. Featured here are some of my "best hits" in the category that don't fit under any specific topic.


Conservid: Promotional poster for a conceptual app focused on wolf conservation and education.
Language of Design: Conceptual event poster highlighting John Bielenberg's quote: "Think wrong, do good, and make it spectacular" for a fictious design speaker presentationOrdinary Days: Conceptual poster for RIT Performing Arts' performance of the Ordinary Days musical by Adam GwonFish Migration Barriers: Awareness poster for the modern day barriers that migrating fish face in the United StatesRIT Esports: Conceptual recruitment poster for the RIT Esports team, highlighting new member relations

conservid app
conservid app
john bielenberg quote
john bielenberg quote
ordinary days musical
ordinary days musical
barriers to fish migration
barriers to fish migration
rit esports recruitment
rit esports recruitment
(function() { const slider = document.querySelector('.miscposters-slider'); if (!slider) return; const track = slider.querySelector('.miscposters-slider__track'); const slides = slider.querySelectorAll('.miscposters-slider__slide'); const prev = slider.querySelector('.miscposters-slider__arrow--prev'); const next = slider.querySelector('.miscposters-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('miscposters-lightbox'); const lightboxImg = document.getElementById('miscposters-lightbox-img'); const lightboxCaption = document.getElementById('miscposters-lightbox-caption'); const closeBtn = lightbox.querySelector('.miscposters-lightbox__close'); const lbPrev = lightbox.querySelector('.miscposters-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.miscposters-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="miscposters"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.textContent = img.dataset.caption || ""; } function closeLightbox() { lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; setTimeout(() => { lightbox.classList.remove('is-visible'); }, 200); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

Fish Migration Educational Poster

Intended for display in a younger-demographic's classroom, this poster features playful colors, drawings, and type all about the different types of fish migration.

This list-type infographic focuses on identifying the five different types of fish migration as well as defining them and providing examples through both text/bullet points and graphics.

Campaigns / long-term projects

The RIT Libraries Hexacart

I worked for the RIT Libraries as an ambassador for two years during my time at the college. My main duties were spearheading the development of the College of Art and Design Librarian, Claire Payne's book cart, the Hexacart, both the branding and general work that came along with the development of the revised version of the cart.

This cart focuses on bringing library materials to students, to promote the use of resources they may not be aware of. My work consisted of outreach, curating book collections, and of course, design for the cart, featured in this section.

native american heritage month event
native american heritage month event
december pop-up events (pre-branding)
december pop-up events (pre-branding)
feburary events (branding starts development)
feburary events (branding starts development)
march events
march events
april events (hexacart 2.0 finishes development)
april events (hexacart 2.0 finishes development)
september events (first semester with branding developed and new cart)
september events (first semester with branding developed and new cart)
october events
october events
november events
november events
janurary/feburary events
janurary/feburary events
march/april events
march/april events
hexacart event website
hexacart event website
example image/frame graphic v.1
example image/frame graphic v.1
example image/frame graphic v.2
example image/frame graphic v.2
(function() { const slider = document.querySelector('.hexacart-slider'); if (!slider) return; const track = slider.querySelector('.hexacart-slider__track'); const slides = slider.querySelectorAll('.hexacart-slider__slide'); const prev = slider.querySelector('.hexacart-slider__arrow--prev'); const next = slider.querySelector('.hexacart-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('hexacart-lightbox'); const lightboxImg = document.getElementById('hexacart-lightbox-img'); const lightboxCaption = document.getElementById('hexacart-lightbox-caption'); const closeBtn = lightbox.querySelector('.hexacart-lightbox__close'); const lbPrev = lightbox.querySelector('.hexacart-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.hexacart-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="hexacart"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.textContent = img.dataset.caption || ""; /* Apply no-outline class in lightbox if needed */ if (img.classList.contains('no-outline')) { lightboxImg.classList.add('no-outline'); } else { lightboxImg.classList.remove('no-outline'); } } function closeLightbox() { lightbox.classList.remove('is-visible'); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();
mentor mentee 2025
mentor mentee 2025
mentor mentee full logo
mentor mentee full logo (designed by: jolie greco)
mentor mentee mini logo
mentor mentee mini logo (designed by: jolie greco)
lesson/meeting layout
lesson/meeting layout
week 2 lesson/meeting
week 2 lesson/meeting
brainstorming activity resources
brainstorming activity resources
mock interview resources
mock interview resources
mentor mentee 2025 kickoff
mentor mentee 2025 kickoff
type and image activity
type and image activity
type and image activity
type and image activity
(function() { const slider = document.querySelector('.mentormentee-slider'); if (!slider) return; const track = slider.querySelector('.mentormentee-slider__track'); const slides = slider.querySelectorAll('.mentormentee-slider__slide'); const prev = slider.querySelector('.mentormentee-slider__arrow--prev'); const next = slider.querySelector('.mentormentee-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('mentormentee-lightbox'); const lightboxImg = document.getElementById('mentormentee-lightbox-img'); const lightboxCaption = document.getElementById('mentormentee-lightbox-caption'); const closeBtn = lightbox.querySelector('.mentormentee-lightbox__close'); const lbPrev = lightbox.querySelector('.mentormentee-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.mentormentee-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="mentormentee"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.innerHTML = img.dataset.caption || ""; if (img.classList.contains('no-outline')) { lightboxImg.classList.add('no-outline'); } else { lightboxImg.classList.remove('no-outline'); } } function closeLightbox() { lightbox.classList.remove('is-visible'); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

RIT Graphic Design: Mentor Mentee

As the former president of RIT's Graphic Design Club, during my role I put forth an initiative that aimed to connect across both the years of students we had in the club, and multiple disciplines. Dubbed Mentor Mentee I designed a network of lesson plans and interactive activities for our chosen mentors to follow along with their groups of students.

On the visual side my social media manager, Jolie Greco, assisted with creating the logo while I focused on colors and program logistics.

RIT Maple Sugaring Society Branding

As an RIT student I was involved in many different organizations and clubs, one of those was being a founded member of the RIT Maple Sugaring Society. This club spawned from RIT Outdoor Education's class Maple Syrup and our Environment, true to the name of the club and the class, they both focus on education and collection of maple syrup.

My role as a founding member was to create the branding and advertising graphics of the club, my last year with the club was spent as its president where I focused on setting up our existing relations with RIT Year One Programs and refining our brand, including things like stickers for fundraising and unique labels for our jars of maple syrup.


main rit mss logo
main rit mss logo
club advertisement poster
club advertisement poster
club promotional pamphlets, for the rit banff film festival
club promotional pamphlets, for the rit banff film festival
alternate logos + stickers
alternate logos + stickers
branded maple syrup labels
branded maple syrup labels
rit 365 designed syrup experience
rit 365 designed syrup experience
student worksheet for the experience
student worksheet for the experience
one of our taps from the season
one of our taps from the season
(function() { const slider = document.querySelector('.ritmss-slider'); if (!slider) return; const track = slider.querySelector('.ritmss-slider__track'); const slides = slider.querySelectorAll('.ritmss-slider__slide'); const prev = slider.querySelector('.ritmss-slider__arrow--prev'); const next = slider.querySelector('.ritmss-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('ritmss-lightbox'); const lightboxImg = document.getElementById('ritmss-lightbox-img'); const lightboxCaption = document.getElementById('ritmss-lightbox-caption'); const closeBtn = lightbox.querySelector('.ritmss-lightbox__close'); const lbPrev = lightbox.querySelector('.ritmss-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.ritmss-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="ritmss"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.textContent = img.dataset.caption || ""; if (img.classList.contains('no-outline')) { lightboxImg.classList.add('no-outline'); } else { lightboxImg.classList.remove('no-outline'); } } function closeLightbox() { lightbox.classList.remove('is-visible'); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();
main poster
main poster
poster mockup
poster mockup
instagram story post
instagram story post
instagram page mockup
instagram page mockup
campaign post first slide
campaign post first slide
campaign post second slide
campaign post second slide
campaign post third slide
campaign post third slide
(function() { const slider = document.querySelector('.activeminds-slider'); if (!slider) return; const track = slider.querySelector('.activeminds-slider__track'); const slides = slider.querySelectorAll('.activeminds-slider__slide'); const prev = slider.querySelector('.activeminds-slider__arrow--prev'); const next = slider.querySelector('.activeminds-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('activeminds-lightbox'); const lightboxImg = document.getElementById('activeminds-lightbox-img'); const lightboxCaption = document.getElementById('activeminds-lightbox-caption'); const closeBtn = lightbox.querySelector('.activeminds-lightbox__close'); const lbPrev = lightbox.querySelector('.activeminds-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.activeminds-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="activeminds"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.textContent = img.dataset.caption || ""; /* Copy outline removal */ if (img.classList.contains('no-outline')) { lightboxImg.classList.add('no-outline'); } else { lightboxImg.classList.remove('no-outline'); } } function closeLightbox() { lightbox.classList.remove('is-visible'); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

Active Minds Awareness Campaign

As a creative who struggles with mental health, awareness to it is something I feel passionate about. This small but impactful social media campaign, concepted as a collaboration with the organization Active Minds, focuses on reaching out to support systems in times of need, but, not as is done traditionally in the advertising sphere.

Typical campaigns focusing on mental health highlight reaching out to others about their mental health, but how can you reach out when you're struggling? This campaign aims to heal that void by providing examples and resources on how to reach out to someone when you, yourself are struggling.

Sugah Branding and Design

A fictitious candy shop, based in Camden, Maine, Sugah focuses on traditional home-made candies and a particular connection with its location and community.

With a store so focused on its product and roots of its location, the store needed a brand with logos and assets that matched their methodologies and appealed to their audience in the small town.

logos and variations
logos and variations
typefaces and colors
typefaces and colors
bag design
bag design
box/packaging design
box/packaging design
product labels/tents
product labels/tents
beverage containers
beverage containers
(function() { const slider = document.querySelector('.sugah-slider'); if (!slider) return; const track = slider.querySelector('.sugah-slider__track'); const slides = slider.querySelectorAll('.sugah-slider__slide'); const prev = slider.querySelector('.sugah-slider__arrow--prev'); const next = slider.querySelector('.sugah-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('sugah-lightbox'); const lightboxImg = document.getElementById('sugah-lightbox-img'); const lightboxCaption = document.getElementById('sugah-lightbox-caption'); const closeBtn = lightbox.querySelector('.sugah-lightbox__close'); const lbPrev = lightbox.querySelector('.sugah-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.sugah-lightbox__arrow--next'); const images = Array.from(document.querySelectorAll('[data-lightbox="sugah"]')); images.forEach((img, i) => { img.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { lightbox.classList.add('is-visible'); loadLightboxImage(); } function loadLightboxImage() { const img = images[index]; lightboxImg.style.opacity = "0"; lightboxImg.style.transform = "translateY(12px)"; lightboxImg.onload = () => { lightboxImg.style.opacity = "1"; lightboxImg.style.transform = "translateY(0)"; }; lightboxImg.src = img.src; lightboxCaption.textContent = img.dataset.caption || ""; if (img.classList.contains('no-outline')) { lightboxImg.classList.add('no-outline'); } else { lightboxImg.classList.remove('no-outline'); } } function closeLightbox() { lightbox.classList.remove('is-visible'); } closeBtn.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + images.length) % images.length; loadLightboxImage(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % images.length; loadLightboxImage(); }); })();

UI / UX BASED projects

Conservid

Not only being one of my favorite animals, wolves are a keystone species that are vastly misunderstood. With this concept I wanted to create a one-stop-shop for everything wolf, especially the education aspect of it all.

Conservid, a combination of the words conservation and canid, focuses on this mission utilizing a database of wolf information from sources like the Wolf Conservation Center as well as interactive modules to bring the audience more in focus with the app and its missions.

prototype walkthrough
mock app store page
splash screen
sign in
sign up info
welcome page
personality quiz
personality result
home page
saved section
news / article
activities
learning
north american species
puzzle levels
hidden pictures levels
(function() { const slider = document.querySelector('.conservid-slider'); if (!slider) return; const track = slider.querySelector('.conservid-slider__track'); const slides = slider.querySelectorAll('.conservid-slider__slide'); const prev = slider.querySelector('.conservid-slider__arrow--prev'); const next = slider.querySelector('.conservid-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('conservid-lightbox'); const lbImg = document.getElementById('conservid-lightbox-img'); const lbVideo = document.getElementById('conservid-lightbox-video'); const lbCaption = document.getElementById('conservid-lightbox-caption'); const lbPrev = lightbox.querySelector('.conservid-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.conservid-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.conservid-lightbox__close'); const mediaElements = Array.from( slider.querySelectorAll('[data-media-type]') ); const captions = [ "prototype walkthrough", "mock app store page", "splash screen", "sign in", "sign up info", "welcome page", "personality quiz", "personality result", "home page", "saved section", "news / article", "activities", "learning", "north american species", "puzzle levels", "hidden pictures levels" ]; mediaElements.forEach((el, i) => { el.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = mediaElements[index]; const type = el.dataset.mediaType; lbImg.style.display = "none"; lbVideo.style.display = "none"; if (type === "image") { lbImg.src = el.src; lbImg.style.display = "block"; } else { lbVideo.src = el.src; lbVideo.style.display = "block"; } lbCaption.textContent = captions[index] || ""; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + mediaElements.length) % mediaElements.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % mediaElements.length; openLightbox(); }); })();
phone app prototype
in-store kiosk prototype (tablet)
wireframes
wireframes
still frames / screens
still frames / screens
full ui / ux kit
full ui / ux kit
(function() { const slider = document.querySelector('.bbb-slider'); if (!slider) return; const track = slider.querySelector('.bbb-slider__track'); const slides = slider.querySelectorAll('.bbb-slider__slide'); const prev = slider.querySelector('.bbb-slider__arrow--prev'); const next = slider.querySelector('.bbb-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('bbb-lightbox'); const lbImg = document.getElementById('bbb-lightbox-img'); const lbVideo = document.getElementById('bbb-lightbox-video'); const lbCaption = document.getElementById('bbb-lightbox-caption'); const lbPrev = lightbox.querySelector('.bbb-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.bbb-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.bbb-lightbox__close'); const mediaElements = Array.from( slider.querySelectorAll('[data-media-type]') ); mediaElements.forEach((el, i) => { el.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = mediaElements[index]; const type = el.dataset.mediaType; lbImg.style.display = "none"; lbVideo.style.display = "none"; lbVideo.pause(); if (type === "image") { lbImg.src = el.src; lbImg.style.display = "block"; } else { lbVideo.src = el.src; lbVideo.style.display = "block"; } lbCaption.innerHTML = el.dataset.caption || ""; lightbox.classList.add('is-visible'); } function closeLightbox() { lbVideo.pause(); lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + mediaElements.length) % mediaElements.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % mediaElements.length; openLightbox(); }); })();

Bang Bang Boba

Featuring both mobile and in-store interfaces, Bang Bang Boba is a fictious Thai/Taiwanese fusion restaurant that features great food and a cute elusive shrimp mascot representing its brand named Critter.

This project required the joint creation of an online ordering app and an in-store ordering kiosk (for an iPad). Both applications needed to comply under the same brand but were needed for vastly different order cases.

Lancaster Arts Academy Site

The Academy of Visual and Performing Arts in Lancaster, NY gives students the unique chance to put major focus on their creative studies during their high school careers. This program is a blessing to have in the Lancaster School District, it gives creative students and outlet and a community while preparing them for things beyond high school and giving them the chance to partake in local creative endeavors and professional activities like internships.

This redesign of a website for the program comes from my heart as both a designer and an alumni for the program. The project focuses on creating a more streamlined experience for students while also creating a hub of information, photos, and videos for faculty, students, and their guardians.

prototype website walkthrough
website site-map
website site-map
redesigned logos
redesigned logos
homepage
homepage
event archives
event archives
new student information
new student information
upcoming events
upcoming events
faculty page
faculty page
student curriculum page
student curriculum page
(function() { const slider = document.querySelector('.avpa-slider'); if (!slider) return; const track = slider.querySelector('.avpa-slider__track'); const slides = slider.querySelectorAll('.avpa-slider__slide'); const prev = slider.querySelector('.avpa-slider__arrow--prev'); const next = slider.querySelector('.avpa-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('avpa-lightbox'); const lbImg = document.getElementById('avpa-lightbox-img'); const lbVideo = document.getElementById('avpa-lightbox-video'); const lbCaption = document.getElementById('avpa-lightbox-caption'); const lbPrev = lightbox.querySelector('.avpa-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.avpa-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.avpa-lightbox__close'); const mediaElements = Array.from( slider.querySelectorAll('[data-media-type]') ); mediaElements.forEach((el, i) => { el.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = mediaElements[index]; const type = el.dataset.mediaType; lbImg.style.display = "none"; lbVideo.style.display = "none"; lbVideo.pause(); if (type === "image") { lbImg.src = el.src; lbImg.style.display = "block"; lbImg.classList.toggle('no-outline', el.classList.contains('no-outline')); } else { lbVideo.src = el.src; lbVideo.style.display = "block"; lbVideo.classList.toggle('no-outline', el.classList.contains('no-outline')); } lbCaption.innerHTML = el.dataset.caption || ""; lightbox.classList.add('is-visible'); } function closeLightbox() { lbVideo.pause(); lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + mediaElements.length) % mediaElements.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % mediaElements.length; openLightbox(); }); })();

FIN.


Photo Exploration

My experimental or less structured photo series


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Portraiture Series

In Every Universe?

Inspired by my eminent graduation from RIT at the time In Every Universe? focuses on the complex feelings we have with our relationships, particularly focusing on friendships.

The series highlights my most impactful relationships from my time at RIT amongst my peers. Friends that had been with me for all four years, my closest bonds, and even friends I consider like siblings. All of these photos focus on them except for one of myself, looking back on the entire series, much like how I look back on my time at RIT with these people.

(function() { const slider = document.querySelector('.gallery165-slider'); if (!slider) return; const track = slider.querySelector('.gallery165-slider__track'); const slides = slider.querySelectorAll('.gallery165-slider__slide'); const prev = slider.querySelector('.gallery165-slider__arrow--prev'); const next = slider.querySelector('.gallery165-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery165-lightbox'); const lbImg = document.getElementById('gallery165-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery165-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery165-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery165-lightbox__close'); const mediaElements = Array.from( slider.querySelectorAll('[data-media-type]') ); mediaElements.forEach((el, i) => { el.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = mediaElements[index]; lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + mediaElements.length) % mediaElements.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % mediaElements.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.expressions-slider'); if (!slider) return; const track = slider.querySelector('.expressions-slider__track'); const slides = slider.querySelectorAll('.expressions-slider__slide'); const prev = slider.querySelector('.expressions-slider__arrow--prev'); const next = slider.querySelector('.expressions-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('expressions-lightbox'); const lbImg = document.getElementById('expressions-lightbox-img'); const lbVideo = document.getElementById('expressions-lightbox-video'); const lbPrev = lightbox.querySelector('.expressions-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.expressions-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.expressions-lightbox__close'); /* CLICK LISTENER ON SLIDES (not media) */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const type = el.dataset.mediaType; lbImg.style.display = "none"; lbVideo.style.display = "none"; if (type === "image") { lbImg.src = el.src; lbImg.style.display = "block"; } else { lbVideo.src = el.src; lbVideo.style.display = "block"; lbVideo.play(); /* autoplay inside lightbox */ } lightbox.classList.add('is-visible'); } function closeLightbox() { lbVideo.pause(); lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Expressions!

An exploration in both portraiture and studio photography, Expressions! is my earliest studio work. The intention behind this series was to further my learning in the studio while also exploring the range of movement and of course, expression, that a human face can bring to a photograph.

Relationship's Abstractions

A common thread in my more conceptual or narrative series is the idea of relationships, with others, with oneself, and even with concepts. One of the most intriguing parts of the human experience to me is the ideas behind how all of us experience connections within and outside of ourselves.

Relationship's Abstractions focuses on my own common experience of the area where platonic love and romantic love start to meld together. I continue to struggle with identifying these concepts within myself but, I've grown more comfortable with the experience and this series is a reflection of the feelings that have come with that experience through the years.

(function() { const slider = document.querySelector('.gallery167-slider'); if (!slider) return; const track = slider.querySelector('.gallery167-slider__track'); const slides = slider.querySelectorAll('.gallery167-slider__slide'); const prev = slider.querySelector('.gallery167-slider__arrow--prev'); const next = slider.querySelector('.gallery167-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery167-lightbox'); const lbImg = document.getElementById('gallery167-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery167-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery167-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery167-lightbox__close'); /* CLICK LISTENER ON SLIDES (not media) */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery168-slider'); if (!slider) return; const track = slider.querySelector('.gallery168-slider__track'); const slides = slider.querySelectorAll('.gallery168-slider__slide'); const prev = slider.querySelector('.gallery168-slider__arrow--prev'); const next = slider.querySelector('.gallery168-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery168-lightbox'); const lbImg = document.getElementById('gallery168-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery168-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery168-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery168-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Professional Portraits

As a gift to some of my students during my time as a classroom assistant, I created a series of portraits for my students to use as professional headshots.

I wanted to put a fun twist with these photographs so, utilizing some colorful pieces of foam core we decided on what color from CMYK the student most resonated with. That selection went on to be the background color of their photo.

Forest Portraits

As the name implies, Forest Portraits highlights the location at which the series was taken at. My model Logan-Spencer Kaminski is known for their bright, neon green hair. With this in mind I wanted to pair their neon hair (and personality!) with the more natural greens and yellows of the forest nature trails.

(function() { const slider = document.querySelector('.gallery170-slider'); if (!slider) return; const track = slider.querySelector('.gallery170-slider__track'); const slides = slider.querySelectorAll('.gallery170-slider__slide'); const prev = slider.querySelector('.gallery170-slider__arrow--prev'); const next = slider.querySelector('.gallery170-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery170-lightbox'); const lbImg = document.getElementById('gallery170-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery170-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery170-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery170-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Landscape Photography

Personal Project

As mentioned previously, I often explore the concept of relationships in my photography. This series isn't much different in the topics it tackles.

Personal Project explores my relationship with the outside world and my life itself. These relationships are explored through my love of nature and my love of heights, intertwined with undertones of wistfulness.

(function() { const slider = document.querySelector('.gallery171-slider'); if (!slider) return; const track = slider.querySelector('.gallery171-slider__track'); const slides = slider.querySelectorAll('.gallery171-slider__slide'); const prev = slider.querySelector('.gallery171-slider__arrow--prev'); const next = slider.querySelector('.gallery171-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery171-lightbox'); const lbImg = document.getElementById('gallery171-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery171-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery171-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery171-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery172-slider'); if (!slider) return; const track = slider.querySelector('.gallery172-slider__track'); const slides = slider.querySelectorAll('.gallery172-slider__slide'); const prev = slider.querySelector('.gallery172-slider__arrow--prev'); const next = slider.querySelector('.gallery172-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery172-lightbox'); const lbImg = document.getElementById('gallery172-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery172-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery172-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery172-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Lovely Lancaster (New York!)

My hometown, Lancaster, NY is somewhere I take great pride in being from. This series explores the downtown village area of the town, through the lens of a photographer, rather than a lifelong resident. Through this series I was able to discover things I hadn't even noticed within the town, despite passing them nearly every day for 20+ years.

Misc. Topic Series

Me in Lego

Again exploring relationships, this mini series focuses on my mental relationship with the various problems I have struggled with in my health, mental and physical. It's always a complicated relationship, oneself and their disadvantages, through this series I want to represent that and pushing through those challenges as you grow.

(function() { const slider = document.querySelector('.gallery173-slider'); if (!slider) return; const track = slider.querySelector('.gallery173-slider__track'); const slides = slider.querySelectorAll('.gallery173-slider__slide'); const prev = slider.querySelector('.gallery173-slider__arrow--prev'); const next = slider.querySelector('.gallery173-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery173-lightbox'); const lbImg = document.getElementById('gallery173-lightbox-img'); const lbVideo = document.getElementById('gallery173-lightbox-video'); const lbPrev = lightbox.querySelector('.gallery173-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery173-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery173-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const type = el.dataset.mediaType; lbImg.style.display = "none"; lbVideo.style.display = "none"; if (type === "image") { lbImg.src = el.src; lbImg.style.display = "block"; } else { lbVideo.src = el.src; lbVideo.style.display = "block"; lbVideo.play(); /* autoplay inside lightbox */ } lightbox.classList.add('is-visible'); } function closeLightbox() { lbVideo.pause(); lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery174-slider'); if (!slider) return; const track = slider.querySelector('.gallery174-slider__track'); const slides = slider.querySelectorAll('.gallery174-slider__slide'); const prev = slider.querySelector('.gallery174-slider__arrow--prev'); const next = slider.querySelector('.gallery174-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery174-lightbox'); const lbImg = document.getElementById('gallery174-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery174-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery174-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery174-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Family Narrative

One of my most personal projects, Family Narrative focuses on feeling of nostalgia, put a particular emphasis on holidays past. I lost my grandmother to sickness around the age of ten and that entire ordeal has had an overarching affect on how I grew and developed as a person. This series explores those memories, both loving and complicated as I look back on my family through the years. The relationships in a family may never be clear cut but one thing is for certain is that no matter what, the good, the bad, I will always love my family.

Ritchie's Big Adventure

I wanted to push the limits of what a still life could be considered with this series. So, taking along my RITchie the Tiger mascot plush I created a narrative of him going out on a big adventure in the world. The series focuses mainly as the tiger as a focal point but is supplemented by various items and locations throughout his adventures.

(function() { const slider = document.querySelector('.gallery175-slider'); if (!slider) return; const track = slider.querySelector('.gallery175-slider__track'); const slides = slider.querySelectorAll('.gallery175-slider__slide'); const prev = slider.querySelector('.gallery175-slider__arrow--prev'); const next = slider.querySelector('.gallery175-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery175-lightbox'); const lbImg = document.getElementById('gallery175-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery175-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery175-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery175-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery169-slider'); if (!slider) return; const track = slider.querySelector('.gallery169-slider__track'); const slides = slider.querySelectorAll('.gallery169-slider__slide'); const prev = slider.querySelector('.gallery169-slider__arrow--prev'); const next = slider.querySelector('.gallery169-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); const lightbox = document.getElementById('gallery169-lightbox'); const lbImg = document.getElementById('gallery169-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery169-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery169-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery169-lightbox__close'); /* CLICK LISTENER ON SLIDES */ const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Intergalactic Family

Designated as an exploration in photo compositing, Intergalactic Family is a playful series focusing on a fictional "family of the future". In this future, JCPenney's classic family portraits have made a comeback in the public eye. This time however, aliens have become a common sight on Earth and it's not too far fetched to see human and alien blended families like the one this series features.

FIN.


Illustration Bin

My various Illustration-based projects


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Design and Animation Assets

Fish Migration Poster Illustrations

Intended for a younger audience, these fish illustrations strived to invoke the feeling of children's story books to be utilized on an educational poster focusing on the different types of migration for fish.

atlantic bluefin tuna
flathead catfish
dolly varden trout
european eel
goliath grouper
gulf sturgeon
inanga
lake sturgeon
lamprey
longfin eel
river herring
sirajo goby
sicklefin redhorse
torrentfish
(function() { const slider = document.querySelector('.gallery190-slider'); if (!slider) return; const track = slider.querySelector('.gallery190-slider__track'); const slides = slider.querySelectorAll('.gallery190-slider__slide'); const prev = slider.querySelector('.gallery190-slider__arrow--prev'); const next = slider.querySelector('.gallery190-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery190-lightbox'); const lbImg = document.getElementById('gallery190-lightbox-img'); const lbCaption = document.getElementById('gallery190-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery190-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery190-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery190-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery190-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Salmon for Barriers to Fish Poster

Focusing more on realism, this sockeye salmon was created for a poster educating the general public on the modern barriers to fish migration like culverts and old/modern dams.

Conservid App Illustrations

Inspired by styles like the Myers-Briggs test personality icons, these wolf illustrations were intended to be used within my wolf conservation app, Conservid, as user icons, splash animations, and spot illustrations throughout the app.

wolf headshot
wolf fullbody
(function() { const slider = document.querySelector('.gallery192-slider'); if (!slider) return; const track = slider.querySelector('.gallery192-slider__track'); const slides = slider.querySelectorAll('.gallery192-slider__slide'); const prev = slider.querySelector('.gallery192-slider__arrow--prev'); const next = slider.querySelector('.gallery192-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery192-lightbox'); const lbImg = document.getElementById('gallery192-lightbox-img'); const lbCaption = document.getElementById('gallery192-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery192-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery192-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery192-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery192-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
ritchie the tiger full costume
example performer
comparison of suit vs performer
costume chestplate
costume jumpsuit
costume head
costume feet
costume gloves
(function() { const slider = document.querySelector('.gallery193-slider'); if (!slider) return; const track = slider.querySelector('.gallery193-slider__track'); const slides = slider.querySelectorAll('.gallery193-slider__slide'); const prev = slider.querySelector('.gallery193-slider__arrow--prev'); const next = slider.querySelector('.gallery193-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery193-lightbox'); const lbImg = document.getElementById('gallery193-lightbox-img'); const lbCaption = document.getElementById('gallery193-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery193-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery193-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery193-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery193-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

RITchie Mascot Explainer Assets

As part of a video explanation on how to properly wear the RIT tiger mascot costume, these illustrations were intended to be simple and straightford to easily show the viewer what parts of the costume the video was talking about.

Willow-wren and the Bear Puppets

Utilized in my Grimm's Fairytale animation of the story The Willow-Wren and the Bear these character puppets were inspired by the styles of The Oh Hellos and Edward Gorey.

Each puppet is fully poseable at the joints illustrated on them (circles/screws) as well as their heads and necks. The wrens feature a secondary aspect where, when flying, individual different wings were illustrated to help convey flight.

king wren
baby wren
gnat
hornet
bear
fox
wolf
(function() { const slider = document.querySelector('.gallery194-slider'); if (!slider) return; const track = slider.querySelector('.gallery194-slider__track'); const slides = slider.querySelectorAll('.gallery194-slider__slide'); const prev = slider.querySelector('.gallery194-slider__arrow--prev'); const next = slider.querySelector('.gallery194-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery194-lightbox'); const lbImg = document.getElementById('gallery194-lightbox-img'); const lbCaption = document.getElementById('gallery194-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery194-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery194-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery194-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery194-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
curled up illustration
logo illustration
hello! illustration
idle illustration
(function() { const slider = document.querySelector('.gallery195-slider'); if (!slider) return; const track = slider.querySelector('.gallery195-slider__track'); const slides = slider.querySelectorAll('.gallery195-slider__slide'); const prev = slider.querySelector('.gallery195-slider__arrow--prev'); const next = slider.querySelector('.gallery195-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery195-lightbox'); const lbImg = document.getElementById('gallery195-lightbox-img'); const lbCaption = document.getElementById('gallery195-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery195-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery195-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery195-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery195-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Bang Bang Boba Mascot: Critter

Critter the Shrimp-thing is the joyful little mascot of the Thai/Taiwanese fusion restaurant Bang Bang Boba. He is featured primarily as a spot illustration utilized throughout their ordering applications to enhance the user experience.

Standalone Works

RIT Ultimate Frisbee - Danse Macabre

Each year RIT's Ultimate Frisbee Team hosts the Danse Macabre tournament. These illustrations I submitted ended up winning the vote via a landslide in the organization.

Put onto both t-shirts and frisbees my illustrations focused on a "burning skull" motif, utilizing a tiger skull since RIT's mascot is, of course, a tiger! Teams throughout the Rochester area came to participate in their Halloween outfits and came to purchase these special edition merch items with my illustrations on them.

final produced products
inital illustration
illustration fixed for screenprinting
frisbee illustration
team wearing final merchandise
team wearing final merchandise
team wearing final merchandise
(function() { const slider = document.querySelector('.gallery196-slider'); if (!slider) return; const track = slider.querySelector('.gallery196-slider__track'); const slides = slider.querySelectorAll('.gallery196-slider__slide'); const prev = slider.querySelector('.gallery196-slider__arrow--prev'); const next = slider.querySelector('.gallery196-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery196-lightbox'); const lbImg = document.getElementById('gallery196-lightbox-img'); const lbCaption = document.getElementById('gallery196-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery196-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery196-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery196-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery196-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

John Bielenberg Quote Illustration

John Bielenberg's quote "Think wrong, do good, and make it spectacular" encourages creatives to do the unexpected. Deer fit that definition wonderfully which brought me to illustrating a skull of one to pair with Bielenberg's quote.

Miscellaneous Stickers

Much like posters to a designer, stickers often end up frequently within an illustrators workload and how could they not? Everyone seems to love a sticker!


Word of the year: Created for a neighbor, her New Years resolution included following the word "wisdom".
Erie County Fair Bear: Annually, the Erie County Fair is held where I assume the role of Fair Bear, these stickers were given as gifts to my coworkers.Titanic 2024 Production: These were presented as gifts to the performers of Starring Buffalo's 2024 Titanic production.The Informer 2025: These were presented as gifts, put onto whiskey bottles to the performers of American Repertory Theatre of WNY's 2025 production of The Informer.

word of the year
erie county fairbear
titanic '24 production
the informer '25 production
(function() { const slider = document.querySelector('.gallery197-slider'); if (!slider) return; const track = slider.querySelector('.gallery197-slider__track'); const slides = slider.querySelectorAll('.gallery197-slider__slide'); const prev = slider.querySelector('.gallery197-slider__arrow--prev'); const next = slider.querySelector('.gallery197-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery197-lightbox'); const lbImg = document.getElementById('gallery197-lightbox-img'); const lbCaption = document.getElementById('gallery197-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery197-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery197-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery197-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery197-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

FIN.


Analog Fun

a collection of my varied analog focused projects


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Traditional Artworks

miscellaneous works

Here is a collection of my traditional artworks, these don't necessarily fall under one specific category on their own so a hybrid presentation worked the best for them.


Wolf Eye: A large chalk pastel study of an eye of a wolf.
Big Guy: A scientific illustration of a crocodile skull I lovingly dubbed "Big Guy" since it was absolutely massive.Tiny Still Life: Exactly what the name says, this is a graphite 5"x5" illustration of various small objects from my home.Out of Darkness: An ink narrative illustration, this is a re-visit of an older, similarly composed ink work of mine. This is the flipside of that older piece showing my growth as a person.

wolf eye
big guy (crocodile skull)
tiny still-life
"out of darkness"
(function() { const slider = document.querySelector('.gallery198-slider'); if (!slider) return; const track = slider.querySelector('.gallery198-slider__track'); const slides = slider.querySelectorAll('.gallery198-slider__slide'); const prev = slider.querySelector('.gallery198-slider__arrow--prev'); const next = slider.querySelector('.gallery198-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery198-lightbox'); const lbImg = document.getElementById('gallery198-lightbox-img'); const lbCaption = document.getElementById('gallery198-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery198-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery198-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery198-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery198-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery199-slider'); if (!slider) return; const track = slider.querySelector('.gallery199-slider__track'); const slides = slider.querySelectorAll('.gallery199-slider__slide'); const prev = slider.querySelector('.gallery199-slider__arrow--prev'); const next = slider.querySelector('.gallery199-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery199-lightbox'); const lbImg = document.getElementById('gallery199-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery199-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery199-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery199-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Mushrooms of North America

What was dubbed a "sustained investigation" this series focuses on exploring various mushrooms that one can find throughout North America. The series aimed to blend together scientific illustrations, information, and more graphic based elements, exploring this through watercolor and ink.

Archaeology Lab Illustrations

Continuing with more "scientific" based illustration, this series of ink drawings focused on my interactive archaeology labs through one of my elective classes at RIT.

These illustrations were used inside my lab reports to help tie my information and writing to something visual and created a more focused, attractive lab report.

flint knapping
ceramics - dishes
ceramics - mayan crocodile rattle
ancient hatchets
katana identification
katana identification
crocodile rattle (fired)
crocodile rattle (fired)
(function() { const slider = document.querySelector('.gallery200-slider'); if (!slider) return; const track = slider.querySelector('.gallery200-slider__track'); const slides = slider.querySelectorAll('.gallery200-slider__slide'); const prev = slider.querySelector('.gallery200-slider__arrow--prev'); const next = slider.querySelector('.gallery200-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery200-lightbox'); const lbImg = document.getElementById('gallery200-lightbox-img'); const lbCaption = document.getElementById('gallery200-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery200-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery200-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery200-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery200-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Printmaking Works

Isolated Motifs / Designs

As a man who loves to explore, I have had my fair share of exploration within printmaking, primarily with linoleum.


Moss Monster: Inspired by an unused Mojang moss monster, this served as one of my first print explorations.
Cat Hat: A roughly 3" carving, cat hat features a top hat with cat ears meant to serve as a fun icon for my personal YouTube.

moss monster carving
moss monster color tests
cat hat
(function() { const slider = document.querySelector('.gallery205-slider'); if (!slider) return; const track = slider.querySelector('.gallery205-slider__track'); const slides = slider.querySelectorAll('.gallery205-slider__slide'); const prev = slider.querySelector('.gallery205-slider__arrow--prev'); const next = slider.querySelector('.gallery205-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery205-lightbox'); const lbImg = document.getElementById('gallery205-lightbox-img'); const lbCaption = document.getElementById('gallery205-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery205-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery205-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery205-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery205-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Compositional / Larger Prints

With print making we also have the more structured and compositional carvings, carvings meant to stand on their own as a full piece rather than just an icon or motif of a pattern.


The World: Inspired by tarot cards, this carving focuses on card XXI, The World, and illustrations of a winged character, one of his youth and one of his adult years.

Fiber and Textile works

custom character dolls

As a friend of many other creatives, making works that feature their own creations is a labor of love that I am more than happy to partake in. These dolls were created with felt and my sewing machine. I was taught sewing by one of my grandmothers and it is something I love to explore and create new things with.

pink demon character doll
human character doll
illustrations of human and pink demon characters
(function() { const slider = document.querySelector('.gallery204-slider'); if (!slider) return; const track = slider.querySelector('.gallery204-slider__track'); const slides = slider.querySelectorAll('.gallery204-slider__slide'); const prev = slider.querySelector('.gallery204-slider__arrow--prev'); const next = slider.querySelector('.gallery204-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery204-lightbox'); const lbImg = document.getElementById('gallery204-lightbox-img'); const lbCaption = document.getElementById('gallery204-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery204-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery204-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery204-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery204-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Clay works and sculpture

Archaeological Replicas

As part of my experimental archaeology labs, we focused on actually replicating and utilizing ancient practices and techniques. Along with this was some fun ceramic experimentations. With my time I focused on recreating some Ancient Mayan dishes I researched from The MET.

Along with these dishes, I challenged myself to recreate this Mayan crocodile rattle/whistle I also found through The MET. My recreations were majorly successful aside from a couple broken legs and the fact the crocodile really only rattles!

crocodile dish
moon dish
mayan crocodile rattle (pre-fire)
mayan crocodile rattle (fired and fixed)
(function() { const slider = document.querySelector('.gallery203-slider'); if (!slider) return; const track = slider.querySelector('.gallery203-slider__track'); const slides = slider.querySelectorAll('.gallery203-slider__slide'); const prev = slider.querySelector('.gallery203-slider__arrow--prev'); const next = slider.querySelector('.gallery203-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery203-lightbox'); const lbImg = document.getElementById('gallery203-lightbox-img'); const lbCaption = document.getElementById('gallery203-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery203-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery203-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery203-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery203-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
(function() { const slider = document.querySelector('.gallery201-slider'); if (!slider) return; const track = slider.querySelector('.gallery201-slider__track'); const slides = slider.querySelectorAll('.gallery201-slider__slide'); const prev = slider.querySelector('.gallery201-slider__arrow--prev'); const next = slider.querySelector('.gallery201-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery201-lightbox'); const lbImg = document.getElementById('gallery201-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery201-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery201-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery201-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

The MUSHCUP!

Utilizing the makerspace at RIT, I created a fun an unique solution for my problem: I didn't have a pencil cup! So, I created the MushCup, a pencil cup that the user can customize and collect different mushroom magnets for. This cup serves as a place to put your writing utensils while also providing mycological education and a personalized experience through the use of a customizable mushroom layout on the cup itself. This idea would go on to also be featured in a one of my motion pieces as an infomercial.

Tiger Tales

This sculpture, utilizing mainly plasticine and wire, focuses on telling the story of my beginnings at RIT. I was the first student of my immediate family to go into a bachelors program and I felt a lot of pressure to make my parents proud and especially my grandfather as he had actually studied Astro Physics and worked on things like rovers and the Galileo Probe.

The statue features a tiger's paw reaching up towards the sky with dragonflies surrounding it. The paw represents my aspirations in my career while the dragonflies represent my family. The dragonflies are especially tied to my grandfather as we use those as a representation of my deceased grandmother.

(function() { const slider = document.querySelector('.gallery202-slider'); if (!slider) return; const track = slider.querySelector('.gallery202-slider__track'); const slides = slider.querySelectorAll('.gallery202-slider__slide'); const prev = slider.querySelector('.gallery202-slider__arrow--prev'); const next = slider.querySelector('.gallery202-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery202-lightbox'); const lbImg = document.getElementById('gallery202-lightbox-img'); const lbPrev = lightbox.querySelector('.gallery202-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery202-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery202-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); lbImg.src = el.src; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

FIN.


Three-D

My 3D Design/Modeling focused explorations


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Environments and Scenes

spooky forest home

Inspired by the narrative of a twin brother who lost his sister in a forest due to a supernatural being, this scene showcases his cabin home on the outskirts of town where he has lived all of his life. The character first lost his father just after he was born, then his mother in his mid teens and finally his sister in his early 20s, he has dedicated his life to figuring out what beast plagues this forest and prevent others from its harm.

full render
wireframe render
(function() { const slider = document.querySelector('.gallery206-slider'); if (!slider) return; const track = slider.querySelector('.gallery206-slider__track'); const slides = slider.querySelectorAll('.gallery206-slider__slide'); const prev = slider.querySelector('.gallery206-slider__arrow--prev'); const next = slider.querySelector('.gallery206-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery206-lightbox'); const lbImg = document.getElementById('gallery206-lightbox-img'); const lbCaption = document.getElementById('gallery206-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery206-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery206-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery206-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery206-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();
color render
clay render
(function() { const slider = document.querySelector('.gallery207-slider'); if (!slider) return; const track = slider.querySelector('.gallery207-slider__track'); const slides = slider.querySelectorAll('.gallery207-slider__slide'); const prev = slider.querySelector('.gallery207-slider__arrow--prev'); const next = slider.querySelector('.gallery207-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery207-lightbox'); const lbImg = document.getElementById('gallery207-lightbox-img'); const lbCaption = document.getElementById('gallery207-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery207-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery207-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery207-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery207-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Tchotchke Still Life

A small still life of a collection of trinkets within my home. Things like my vintage napkin holder, one clay plate, one of my dog tags, a fun mug as well as a small bird tea-bag holder on top of the mug help make up this composition.

Beach-Forest Home

Built after the story of one of my own characters, this cabin features things the character would have in his cabin. The cabin is situated into a forest that transitions into a colder beach, hence the reason for his surf board in the forest-themed home.

interior view 1
interior view 2
(function() { const slider = document.querySelector('.gallery208-slider'); if (!slider) return; const track = slider.querySelector('.gallery208-slider__track'); const slides = slider.querySelectorAll('.gallery208-slider__slide'); const prev = slider.querySelector('.gallery208-slider__arrow--prev'); const next = slider.querySelector('.gallery208-slider__arrow--next'); let index = 0; function updateSlide() { track.style.transform = 'translateX(' + (-index * 100) + '%)'; } prev.addEventListener('click', () => { index = (index - 1 + slides.length) % slides.length; updateSlide(); }); next.addEventListener('click', () => { index = (index + 1) % slides.length; updateSlide(); }); /* LIGHTBOX */ const lightbox = document.getElementById('gallery208-lightbox'); const lbImg = document.getElementById('gallery208-lightbox-img'); const lbCaption = document.getElementById('gallery208-lightbox-caption'); const lbPrev = lightbox.querySelector('.gallery208-lightbox__arrow--prev'); const lbNext = lightbox.querySelector('.gallery208-lightbox__arrow--next'); const lbClose = lightbox.querySelector('.gallery208-lightbox__close'); const slidesArray = Array.from(slides); slidesArray.forEach((slide, i) => { slide.addEventListener('click', () => { index = i; openLightbox(); }); }); function openLightbox() { const el = slides[index].querySelector('[data-media-type]'); const caption = slides[index].querySelector('.gallery208-caption').textContent; lbImg.src = el.src; lbCaption.textContent = caption; lightbox.classList.add('is-visible'); } function closeLightbox() { lightbox.classList.remove('is-visible'); } lbClose.addEventListener('click', closeLightbox); lightbox.addEventListener('click', closeLightbox); lbPrev.addEventListener('click', (e) => { e.stopPropagation(); index = (index - 1 + slides.length) % slides.length; openLightbox(); }); lbNext.addEventListener('click', (e) => { e.stopPropagation(); index = (index + 1) % slides.length; openLightbox(); }); })();

Assets and Models

Mushcup Infomercial Assetts

Assets from my animation of an informercial for my concept of the MushCup. Each mushroom and the cup were modeled by me in a low-poly style. To create the textures I took real life stock photography of the various mushrooms into photoshop, adjusted the pixelation and mapped them back to the model textures for the feeling of early PSx game textures.


Dog-Character Loop animation

A character from a dear friend, this dog is a robot modeled after those old I-Dog Apple devices. This model took me a couple days to get right and is also my first attempt at rigging a character to pose.

With this animation I really wanted to focus on the unique way this character opens her mouth, very similar to a flip phone. So, the most notable animation is the opening and closing of the character's mouth to show that off.

FIN.


Motion Mayhem

My exploration in Film/Animation and Motion Design


arrow_back_ios
function scrollDown() { window.scrollBy({ top: 375, behavior: "smooth" }); }

Full Animations

How-To: Be RITchie the Tiger!

An explainer video animation that focuses on the rights and wrongs of how to wear RIT's RITchie the tiger mascot costume!

Fish Migration Educational Video

This video is an exstension of the younger demographic focused firsh migration educational poster. The animation takes the information of the different types of fish migration from the poster and puts into a digestible animated video.

Best-of New Order

Styled similarly to the older MTV best-of music videos, this video focuses on the band New Order. The video highlights various different animation and editing techniques from tings like filters and computer animation to stop motion animation.

MushCup Infomercial

Highlighting my MushCup concept, this animation mimics older "As Seen on TV" informercials to push the idea of the MushCup as a product utilizing humor and its unique format.

The Willow-Wren and the Bear

This is an animated video featuring narration from the Grimm's fairytale The Willow-wren and the Bear utilizing puppets drawn in Procreate, brought into After Effects to move around.

Mini Animations

Conservid Loading Gifs

These mini-animations are part of my Conservid UI/UX project. Both of these looping animations are placed within the created application, on the splash screen when opening the app an a custom loading circle for when things take a bit longer to load.

Filmmaking / Video Editing

To Be Human - mini film

My first dive into filmmaking, To Be Human focuses on particularly just that, what it means to be a person, to be part of humankind. As a transgender and neurodivergent individual I have always felt not quite in the right place, everywhere I go. This mini film explores those feelings.

FIN.


Do you want to make something awesome? something super cool? something mind-blowing!?


Then Contact me!

Fill out the form below to start something amazing:


This site is protected by reCAPTCHA.



I will get back to you ASAP!

thanks so much!


Talk to you soon!



Lyle O. Leiws LOL! logo bouncing animation
BeforeAfter
Before
After
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Bold white text reading 'RESEARCH' centered on a curved red banner above a background of scattered strawberries on light pink.
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Lyle O. Leiws LOL! logo bouncing animation
Before
After
Before
After