Skip to content

Commit 56c3817

Browse files
committed
Smoke test to make sure that forward function runs
1 parent 802db3e commit 56c3817

3 files changed

Lines changed: 41 additions & 10 deletions

File tree

genmetaballs/src/cuda/bindings.cu

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ NB_MODULE(_genmetaballs_bindings, m) {
4343
[](const ZeroParameterConfidence& c) { return nb::str("ZeroParameterConfidence()"); });
4444

4545
nb::class_<TwoParameterConfidence>(confidence, "TwoParameterConfidence")
46-
.def(nb::init<float, float>())
46+
.def(nb::init<float, float>(), nb::arg("beta4"), nb::arg("beta5"))
4747
.def_ro("beta4", &TwoParameterConfidence::beta4)
4848
.def_ro("beta5", &TwoParameterConfidence::beta5)
4949
.def("get_confidence", &TwoParameterConfidence::get_confidence, nb::arg("sumexpd"),
@@ -81,7 +81,7 @@ NB_MODULE(_genmetaballs_bindings, m) {
8181
// Getter/Intersector/Blender/Confidence at runtime
8282
forward.def("render_fmbs",
8383
&render_fmbs<AllGetter<MemoryLocation::DEVICE>, LinearIntersector,
84-
FourParameterBlender, TwoParameterConfidence>,
84+
ThreeParameterBlender, TwoParameterConfidence>,
8585
"Render FMBs using FourParameterBlender and TwoParameterConfidence",
8686
nb::arg("fmbs"), nb::arg("blender"), nb::arg("confidence"), nb::arg("intr"),
8787
nb::arg("extr"), nb::arg("img"));
@@ -178,7 +178,8 @@ NB_MODULE(_genmetaballs_bindings, m) {
178178
// blender submodule
179179
nb::module_ blender = m.def_submodule("blender");
180180
nb::class_<FourParameterBlender>(blender, "FourParameterBlender")
181-
.def(nb::init<float, float, float, float>())
181+
.def(nb::init<float, float, float, float>(), nb::arg("beta1"), nb::arg("beta2"),
182+
nb::arg("beta3"), nb::arg("eta"))
182183
.def_ro("beta1", &FourParameterBlender::beta1)
183184
.def_ro("beta2", &FourParameterBlender::beta2)
184185
.def_ro("beta3", &FourParameterBlender::beta3)
@@ -191,7 +192,7 @@ NB_MODULE(_genmetaballs_bindings, m) {
191192
});
192193

193194
nb::class_<ThreeParameterBlender>(blender, "ThreeParameterBlender")
194-
.def(nb::init<float, float, float>())
195+
.def(nb::init<float, float, float>(), nb::arg("beta1"), nb::arg("beta2"), nb::arg("eta"))
195196
.def_ro("beta1", &ThreeParameterBlender::beta1)
196197
.def_ro("beta2", &ThreeParameterBlender::beta2)
197198
.def_ro("eta", &ThreeParameterBlender::eta)

genmetaballs/src/genmetaballs/core/__init__.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
ZeroParameterConfidence,
1212
)
1313
from genmetaballs._genmetaballs_bindings.fmb import CPUFMBScene, GPUFMBScene
14+
from genmetaballs._genmetaballs_bindings.forward import render_fmbs
1415
from genmetaballs._genmetaballs_bindings.image import CPUImage, GPUImage
1516
from genmetaballs._genmetaballs_bindings.utils import CPUFloatArray2D, GPUFloatArray2D, sigmoid
1617

@@ -65,16 +66,17 @@ def make_fmb_scene(size: int, device: DeviceType) -> CPUFMBScene | GPUFMBScene:
6566

6667
__all__ = [
6768
"array2d_float",
68-
"ZeroParameterConfidence",
69-
"TwoParameterConfidence",
7069
"fmb",
7170
"geometry",
72-
"Camera",
73-
"Intrinsics",
7471
"intersector",
72+
"make_fmb_scene",
73+
"make_image",
74+
"render_fmbs",
7575
"sigmoid",
76+
"Camera",
7677
"FourParameterBlender",
78+
"Intrinsics",
7779
"ThreeParameterBlender",
78-
"make_image",
79-
"make_fmb_scene",
80+
"TwoParameterConfidence",
81+
"ZeroParameterConfidence",
8082
]

tests/python_tests/test_forward.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from jax.scipy.spatial.transform import Rotation
2+
3+
from genmetaballs.core import (
4+
Intrinsics,
5+
ThreeParameterBlender,
6+
TwoParameterConfidence,
7+
geometry,
8+
make_fmb_scene,
9+
make_image,
10+
render_fmbs,
11+
)
12+
13+
14+
def test_render_fmbs_smoke() -> None:
15+
"""checks that render_fmbs can be called without errors"""
16+
scene = make_fmb_scene(20, device="gpu")
17+
blender = ThreeParameterBlender(beta1=1.0, beta2=0.5, eta=2.0)
18+
confidence = TwoParameterConfidence(beta4=0.5, beta5=-1.0)
19+
camera = Intrinsics(fx=100.0, fy=100.0, cx=50.0, cy=50.0, width=100, height=120)
20+
rotation = Rotation.identity()
21+
pose = geometry.Pose.from_components(
22+
rot=geometry.Rotation.from_quat(*rotation.as_quat()),
23+
tran=geometry.Vec3D(0.0, 0.0, 5.0),
24+
)
25+
# allocate output buffer
26+
image = make_image(camera.height, camera.width, "gpu")
27+
28+
render_fmbs(scene, blender, confidence, camera, pose, image.as_view())

0 commit comments

Comments
 (0)