if you are using it in your own projects and find yourself
implementing some procedures often, or if there's any issue or you
have ideas about how to improve it, please let me know; directly or
through the list.
there aren't that many users and it'd be good to get more feedback.
one of the things we want to do next is turn the structs and the
Matrix3? types into unions, for example replace
typedef double Matrix[3][3];
with
typedef union Matrix Matrix;
union Matrix {
double m[3][3];
struct {
double m00, m01, m02;
double m10, m11, m12;
double m20, m21, m22;
};
};
to provide more options or naming flexibility. in the case of the
Matrix it also simplifies things, because it being an array makes it
inconsistent and a pain to work with (you find yourself doing a lot of
memmove(2), it hides the fact that it's a pointer when passed to
routines, ...).
the thing is that this breaks the ability to use compound literals for
quick construction, which are very handy. it seems there has been talk
about adding support for that to the compilers, but it will take a
while. in the meantime it'd be great to hear about alternatives.
another thing that would be neat to incorporate is some form of
geometric algebra. is anybody working on that?
best regards,
-rodri
On Tue, Dec 16, 2025 at 5:09 AM Skip Tavakkolian
<[email protected]> wrote:
>
> Thank you. That's good to know. I'll check it out.
>
>
>
> On Mon, Dec 15, 2025, 5:44 AM Rodrigo G. López <[email protected]> wrote:
>>
>> hi skip,
>>
>> we made improvements to the library for 9front some years ago, and i'm
>> using it as the basis for some of my projects:
>>
>> - https://shithub.us/rodri/3dee/HEAD/info.html
>> - https://shithub.us/rodri/libgraphics/HEAD/info.html
>>
>> it should have enough practical examples for many things. libgraphics
>> implements a full 3d renderer, and on 3dee you'll find some tools to
>> work with 3d files (OBJ, STL and the internal model(6) so far), along
>> with a visualizer; it also includes a raymarching demo.
>>
>> notably, it's not the same interface as the old one, but we decided to
>> make it more specific to geometry since the original one also embedded
>> functionality related to graphics that would be better included in a
>> different library.
>>
>>
>> best regards,
>>
>> -rodri
>>
>> On Mon, Dec 15, 2025 at 3:23 AM Skip Tavakkolian
>> <[email protected]> wrote:
>> >
>> > Hi all,
>> >
>> > In case anyone is interested, I've created an example [1] to display
>> > and manipulate 3D objects using libgeometry (i.e. arith3(2),
>> > matrix(2), qball(2)). If it is judged to be a good enough example,
>> > perhaps it should be in /sys/src/libgeometry.
>> >
>> > I wasn't able to find any example usage of the libary in any of the
>> > usual places, but I did find another implementation called moogle [2].
>> >
>> > -Skip
>> >
>> > [1] https://github.com/9nut/plan9cmd/tree/main/examples
>> > [2] https://wiki.xxiivv.com/site/moogle.html
>
> 9fans / 9fans / see discussions + participants + delivery options Permalink
------------------------------------------
9fans: 9fans
Permalink:
https://9fans.topicbox.com/groups/9fans/Tecc459ab350ef9bc-M349f2ab713d236f5dcbcabeb
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription