79

My 3D SWE Portfolio – Built with React Three Fiber

Some feedback:

1. I spent a while clicking and dragging and not realizing that it works by scrolling.

2. There's no way to tell what's clickable.

At first I just clicked on the guy in the cage which sent me to the 2D website and I thought that was it. I didn't realize that you can scroll down to see other stuff until much later.

2 days agoporphyra

Yup, I tried everything but scrolling and gave up, since that isn't a normal function in 3d space.

2 days agowccrawford

Thanks for the feedback! Planning on adding an indication to scroll, and some sort of effect for clickable items. Also planning to remove the boat/cage taking you to other page, it made sense in a previous version of the site.

2 days agoOia20

If you have to add that indication then it's unintuitive? IMHO you should take the effort to stop making a 3D world scrollable. You've designed a 3D world but are sandboxing the experience to a typical 2D website.

2 days agothrow14082020
[deleted]
2 days ago

You know it is going to be good when the laptop turbines start whistling as soon as you click a link ...

2 days agojarebear6expepj

It'll do that with any React site, even the 2D boring ones :p

2 days agobboygravity

It spun up the fans on my Xeon workstation too lol

2 days agonsriv

Haha, so true

2 days agoOia20

I also built a 3D portfolio website[1] using React and react-three-fiber but I took a different approach design-wise, the HTML content is scrollable like a normal website but the 3D scene subtly matches the perspective of the screen as you scroll.

[1] - https://samuelgoodell.com

2 days agogoodells

Btw that site runs horribly in chrome on a pixel 9. The frame rate is low and scrolling has lots of jank. Also the page width is just a little bit wider than my screen width, so there is horizontal scrolling as well.

2 days agocom2kid

Same in Firefox on a Pixel 9 Pro.

2 days agotenuousemphasis

Sadly for me nothing renders except this:

Unexpected Application Error!

Error creating WebGL context.

BY@https://samuelgoodell.com/assets/index-BJD6lt1T.js:3867:2044... iPe@https://samuelgoodell.com/assets/index-BJD6lt1T.js:5430:2242... configure@https://samuelgoodell.com/assets/index-BJD6lt1T.js:5430:2368... @https://samuelgoodell.com/assets/index-BJD6lt1T.js:5430:3434... B1@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:24877 Jc@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:32446 rw@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:32302 e2@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:31821 vA@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:41904 E0@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:41257 s2@https://samuelgoodell.com/assets/index-BJD6lt1T.js:40:36606 E@https://samuelgoodell.com/assets/index-BJD6lt1T.js:25:1604 D@https://samuelgoodell.com/assets/index-BJD6lt1T.js:25:1968

2 days agonormie3000

That’s a nice spin on using react three fiber!

2 days agoOia20

nice site. one suggestion - it took me too long to realize I needed to scroll down to see your stuff. maybe a little ghost arrow pointing down might help others

2 days agofnord77

Does anyone remember that mid-2000s, 3D competitor to Flash? i think the name started with A like Ankh or something like that but I could be wildly off. It had an IDE and basically ran as a plugin in the browser. It died a quiet death.

This site kinda sorta reminds me of that.

Forget what it's called - if someone does, please post more info!

2 days agobnetd

“A frame” was one but likely not what you mean

2 days agodieselgate
[deleted]
2 days ago

Not Adobe shockwave, right?

2 days agoOia20

No, this was a completely different, but competing product. the IDE was intended for, to some extent, simple 3D modeling/importing of 3D models, and you could launch a browser instance to see the output.

2 days agobnetd

Didn't Microsoft have something like that? Sketchflow?

2 days agoneogodless

Microsoft had Silverlight, which was a competing platform with Flash.

a day agonoduerme

Wasn't it VRML or maybe some tool that generated VRML? What I found with A that generated VRML was 'Avocado'

2 days agomeiraleal

There are no shadows or transparent textures and only low poly models, yet I only get maybe 2fps. I've built webgl racing game that did >50fps on a $50 phone [1]. There's something seriously wrong with your tech stack.

[1] https://www.youtube.com/watch?v=okg61OOFUdQ

2 days agodvh

This may be a compatibility problem. On my phone it seems to run at 60fps.

2 days agoSomeoneOnTheWeb

on my laptop with a top of the line cpu, gpu, storage and ram, i also only get like maybe 10fps....

It's slightly better in chrome/edge at maybe 15,20 fps but still un-pleasant.

2 days agozipy124

Nice work on your racing game! I haven’t experienced the low frame rate you’re mentioning on my site across any of my devices (maybe low frame rate on load a few times)

2 days agoOia20
[deleted]
2 days ago

No one likes a show off. The website does the job and does it well. It got me exploring and clicking to find out more.

2 days agogareth_untether

Cool site, as somebody else has pointed out it's not entirely clear what to do once you land on the site.

I don't know how easy it is to accomplish with React Three Fiber, but something as simple as having paving `cursor: pointer` on links would be great, as well as an indicator that they'll open in a new tab (typically conveyed through the little box with an arrow going top right).

Fun little project though, I've always wanted to try something similar in the browser.

2 days agochrysoprace

Thanks! Going to work on some features to help with this soon! Something like a scroll indicator, pointer is also a great idea for clickable item! The arrow indicator idea I also like!

2 days agoOia20
[deleted]
2 days ago

This has been a work and progress for a while now. A few months back the site used orbital controls, but I realized the UI/UX (Especially for non tech savy users) was unintuitive. Working to settle on a middle ground.

5 days agoOia20

It's a nice scene - a bit busy overall but not bad, if I was hiring for an entry level R3F dev this would be a good thing to show me.

However, for me (very familiar with orbit controls) the controls are now very unintuitive. I think it's better to have a combo of orbit controls, perhaps constraining one or more axes, and animating the camera to transition between different pivot points on click (and maybe change the constraints to suit each particular view). Note that Yomotsu's CameraControls (available via Drei) give a lot better control for this kind of thing than the standard OrbitControls.

If you're going for a 3d interface, no matter the control system, some people won't be familiar with it. The best solution is to accept this and go with the thing the largest number of people will be familiar with (so basically orbit controls), not to roll your own interface that now makes it unfamiliar to everyone.

2 days agoesperent

Looks good, I was looking into react-three-fiber as well for my site.

*work in progress by the way

2 days agosatvikpendem

God bless you and your beautiful site. I salute you.

As others have said I do think the controls need work; maybe some form of constrained orbit controls would work well.

2 days agoayaros

Thanks so much! Going to play with adding in some constrained orbital controls, and add some other visual indicators to let visitors know how to interact with the site better.

2 days agoOia20

This is fun, cool, interesting. Really love R3F and how easy it makes it to add 3D to websites. Make the web fun again.

2 days agochrisco255

The projects 2d site is slower than the 3d one

2 days agokelvinjps10

Interesting! Likely because the 3D model for the photo on the 2D site is a larger model than any of the models in the 3D scene.

But what’s extra interesting about that is the 3D page is a vanilla React project while the 2D site is built with Astro SSG, and has all 90+ lighthouse scores.

2 days agoOia20

I like the vibe but damn did my Dell Precision 5680 get loud

2 days agoktxyznvda

how did you host the files for the 3d rendering?

18 hours agoangrydingo

Nice, but I really really really wish to use the arrow keys to rotate.

5 days agogus_massa

You should make it work in VR to get the full immersion.

2 days agoz3t4

That’s actually sounds like such a fun feature to build.

2 days agoOia20

just wow can i know how did you build this ? put me on track also how long it took you to build ?

5 days agoyoussef_samwel

I’m glad you like it!

I built the initial version in about a week.

If you’re comfortable with react already you can use React Three Fiber, and a few libraries associated with it like drei. This can also be done with vanilla three.js.

I would say look for some 3D models you like on a site like sketchfab, and think of what you could build related to the 3D object. Even better, if you have some 3D modeling experience, create a model yourself and maybe a fun little website with it!

5 days agoOia20

thank you i will go for it

5 days agoyoussef_samwel

looks fun! screams "junior developer that thinks they need to stand out", peons praise getting a call back to a job application as if getting that is a done deal, but in this industry you'll still have to pass the technical interview which is the real make or break

I've heard about the frictions with getting call backs in the entry level part of the market, and I think its just best to cosplay as senior developer, as its mostly a mindset. you'll lose some roles for your mistakes but there is no passported reputation here, just get employed, wait for some of your coworkers to leave so they can be your collection of references, and keep applying to other jobs.

to get the first jobs, form an LLC and say you work for that, for some time if it works better to get to the hiring manager

I mean, you were building some stuff through college after all right? so its true, backdate it back to your sophomore year, bam 3 years experience. such ambitious, much wow

launder real experience on top of it and replace your resume with that professional validation

2 days agoyieldcrv

I don't think I "need to stand out", but I do think standing out is a good thing.

2 days agoOia20
[deleted]
2 days ago

Who hurt you?

2 days agotcfunk

Cool idea, using shapen.com you could quickly generate all the 3d models