solidjs-community / solid-three

port of @react-three/fiber for solid
https://solid-three.vercel.app
127 stars 13 forks source link

solidified `solid-three` #15

Open bigmistqke opened 5 months ago

bigmistqke commented 5 months ago

Implementation of proxy-based threejs renderer, based on the exploration done in the zustand-to-store branch.

This branch deviates from the previous goal of staying close to r3f's codebase in favor of simplification and solidification

Similarities

Differences

vorth commented 5 months ago

Are these similarities and differences comparing this branch with zustand-to-store, or with main? The latter is more valuable.

I really don't have a clue how to assess the merits of this PR, sorry. We don't have a test suite, so I can't really do it empirically. There's not enough information in the PR to really understand the changes and any tradeoffs they imply.

We really need user documentation, or at least LOTS of sample code. I think we're still in the unfortunate situation that someone can't really predict how to use the library without understanding both its implementation AND the tooling transformation it requires.

Also, if you're still using "T.whatever", we don't need any custom tooling, and I'd prefer to keep it that way. Just give me sample code for the registrations.

BTW you should change the version number from "0.2.0" to anything else.

bigmistqke commented 5 months ago

Are these similarities and differences comparing this branch with zustand-to-store, or with main? The latter is more valuable.

In comparison with zustand-to-store. This initial commit was a very barebones implementation of a three-renderer for solid. I have since re-implemented a lot of the API react-three-fiber provides.

I really don't have a clue how to assess the merits of this PR, sorry. We don't have a test suite, so I can't really do it empirically.

I created testing utilities for solid-three (see ./src/testing) and ported the tests from react-three-fiber. We have some tests failing due to missing API, but I would consider these non-essential.

There's not enough information in the PR to really understand the changes and any tradeoffs they imply.

From userland there are currently little changes, now that I re-implemented most of the API, except from some internals

We really need user documentation, or at least LOTS of sample code. I think we're still in the unfortunate situation that someone can't really predict how to use the library without understanding both its implementation AND the tooling transformation it requires.

Yes, I agree. I (and chatgpt) provided jsdoc comments for most of the functions, also internal ones. But we need documentation/examples, for sure. A REPL would be very handy.

bigmistqke commented 2 months ago

Following api still needs to be implemented:

Following api might be implemented (let's discuss)