* [9fans] Example for libgeometry
@ 2025-12-15 2:02 Skip Tavakkolian
2025-12-15 12:47 ` Rodrigo G. López
0 siblings, 1 reply; 4+ messages in thread
From: Skip Tavakkolian @ 2025-12-15 2:02 UTC (permalink / raw)
To: Fans of the OS Plan 9 from Bell Labs
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
Permalink: https://9fans.topicbox.com/groups/9fans/Tecc459ab350ef9bc-M7d37804a3e67f2aef9c676c2
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [9fans] Example for libgeometry
2025-12-15 2:02 [9fans] Example for libgeometry Skip Tavakkolian
@ 2025-12-15 12:47 ` Rodrigo G. López
2025-12-16 1:22 ` Skip Tavakkolian
0 siblings, 1 reply; 4+ messages in thread
From: Rodrigo G. López @ 2025-12-15 12:47 UTC (permalink / raw)
To: 9fans
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
<skip.tavakkolian@gmail.com> 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
Permalink: https://9fans.topicbox.com/groups/9fans/Tecc459ab350ef9bc-M01592ba1b29e34c373bbd473
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [9fans] Example for libgeometry
2025-12-15 12:47 ` Rodrigo G. López
@ 2025-12-16 1:22 ` Skip Tavakkolian
2025-12-16 14:23 ` Rodrigo G. López
0 siblings, 1 reply; 4+ messages in thread
From: Skip Tavakkolian @ 2025-12-16 1:22 UTC (permalink / raw)
To: 9fans
[-- Attachment #1: Type: text/plain, Size: 1851 bytes --]
Thank you. That's good to know. I'll check it out.
On Mon, Dec 15, 2025, 5:44 AM Rodrigo G. López <rodrigosloop@gmail.com>
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
> <skip.tavakkolian@gmail.com> 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
Permalink: https://9fans.topicbox.com/groups/9fans/Tecc459ab350ef9bc-Med8db9347f9196efe46e7588
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
[-- Attachment #2: Type: text/html, Size: 3980 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [9fans] Example for libgeometry
2025-12-16 1:22 ` Skip Tavakkolian
@ 2025-12-16 14:23 ` Rodrigo G. López
0 siblings, 0 replies; 4+ messages in thread
From: Rodrigo G. López @ 2025-12-16 14:23 UTC (permalink / raw)
To: 9fans
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
<skip.tavakkolian@gmail.com> 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 <rodrigosloop@gmail.com> 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
>> <skip.tavakkolian@gmail.com> 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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-12-16 14:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-15 2:02 [9fans] Example for libgeometry Skip Tavakkolian
2025-12-15 12:47 ` Rodrigo G. López
2025-12-16 1:22 ` Skip Tavakkolian
2025-12-16 14:23 ` Rodrigo G. López
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).