chenzhaiyu/points2poly

Crash during reconstruction when creating cubes

Closed this issue · 2 comments

Hi,
First of all, thank you very much for providing the code for Points2Poly!
I have been trying to use your work in a docker environment but have systematic crashes when trying to use the reconstruction script on the Helsinki dataset.

Here is the error I get

Traceback (most recent call last):
  File "reconstruct.py", line 51, in reconstruct_full
    cell_complex = create_cell_complex(filepath,
  File "/app/utils.py", line 65, in create_cell_complex
    cell_complex = CellComplex(vertex_group.planes, vertex_group.aabbs, vertex_group.obbs, vertex_group.points_grouped,
  File "/home/appuser/.local/lib/python3.8/site-packages/abspy/complex.py", line 83, in __init__
    self.cells = [self._construct_initial_cell()]  # list of QQ
  File "/home/appuser/.local/lib/python3.8/site-packages/abspy/complex.py", line 105, in _construct_initial_cell
    return polytopes.cube(intervals=[[QQ(self.initial_bound[0][i]), QQ(self.initial_bound[1][i])] for i in range(3)])
TypeError: cube() got an unexpected keyword argument 'intervals'

It seems to be correlated with sagemath, but I am not familiar with this lib, and the documentation still mentions the "intervals" keyword, so I guess the real issue maybe elsewhere. Do you have any hints regarding this error?

Thanks a lot!

For reproducibility, I show the dockerfile and the list of instructions done hereafter.

Dockerfile:

FROM nvidia/cuda:11.3.1-devel-ubuntu20.04

ENV DEBIAN_FRONTEND noninteractive

WORKDIR /app
COPY . /app

RUN apt-get -y update \
    && apt-get install -y software-properties-common \
    && apt-get -y update \
    && add-apt-repository universe
RUN apt-get -y update
RUN apt-get -y install nano git python3 python3-pip wget libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 curl sagemath

RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

CMD ["python3", "main.py"]

List of commands once the docker is launched:

pip install ./abspy
pip install -r points2surf/requirements.txt
pip install -r requirements.txt
python download.py dataset_name='helsinki_mini' model_name='helsinki_fullview'
python reconstruct.py dataset_name='helsinki_mini' model_name='helsinki_fullview'

Hi @sguinard, thanks for the detailed post. It seems most likely you had the latest version of SageMath installed via RUN apt-get -y install ... sagemath, while the repo was built on sage=10.0. Please follow this instruction to install sage=10.0. Let me know if that helps.

Hi @chenzhaiyu, thanks a lot for the quick answer! That was the point I was missing. It works fine now!